構文規則は、言語要素を並べて正しい文を作成する基準を示します。つまり、構文検査はキーワード、オブジェクト名、演算子、デリミタなどがSQL文に正しく配置されていることを検証します。たとえば、次の埋込みSQL文には構文上のエラーがあります。
EXEC SQL DELETE FROM EMP WHER DEPTNO = 20; -- misspelled keyword WHERE EXEC SQL INSERT INTO EMP COMM, SAL VALUES (NULL, 1500); -- missing parentheses around column names COMM and SAL
意味上の規則は、有効な外部参照を行う方法を示しています。したがって、セマンティック・チェックでは、データベース・オブジェクトおよびホスト変数への参照が有効であることと、ホスト変数のデータ型が正しいことを検証します。たとえば、次の埋込みSQL文には意味上のエラーがあります。
EXEC SQL DELETE FROM empp WHERE deptno = 20;
-- nonexistent table, EMPP
EXEC SQL SELECT * FROM emp WHERE ename = :emp_name;
-- undeclared host variable, emp_name
SQL構文と意味に関する規則は、Oracle Database SQL言語リファレンスに定義されています。