使用动态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'