使用动态SQL语句的要求

要使用动态SQL语句,一个字符串必须包含合法SQL语句的内容,但是,不能包括EXEC SQL子句、语句结束符和以下任何一个嵌入式SQL命令:

ALLOCATE

CLOSE

DECLARE

DESCRIBE

EXECUTE

FETCH

FREE

GET

INCLUDE

OPEN

PREPARE

SET

WHENEVER

在大多数情况下,字符串可以包含哑元主变量。它们在SQL语句中为实际的主变量保留位置。因为哑元主变量仅仅是占位符,所以,用户可以不声明就使用它们,而且它们的名字也是任意的。另外,占位符也可以用问号(?)来表示。比如,神通数据库对于以下三个句子的处理是相同的:

'DELETE FROM EMP WHERE MGR = :mgr_number AND JOB = :job_title'

'DELETE FROM EMP WHERE MGR = :m AND JOB = :j'

'DELETE FROM EMP WHERE MGR = ? AND JOB = :a'