【发布时间】:2016-09-14 10:00:53
【问题描述】:
我在 oracle 中遇到了以下用于创建过程的语法。我想知道语法中使用的 a' 、 q'a 、 q'z 和 z' 是什么。
谁能解释一下这些结构的用法。
**
EXECUTE IMMEDIATE 'CREATE OR REPLACE PROCEDURE "demoproc" '|| '( FIXCARD in number DEFAULT 0, INC in number DEFAULT 0 ) '|| 'AUTHID DEFINER IS '|| 'CARD NUMBER; '|| 'FOWNER VARCHAR2(128) := '|| ' SYS_CONTEXT(''USERENV'',''CURRENT_SCHEMA''); '|| 'BEGIN '|| 'EXECUTE IMMEDIATE '|| ''' EXPLAIN PLAN FOR '' || '|| q'z q'a SELECT a' || q'a z' || q'z "demotab"."a" AS "F_NO",
:B7 a' || q'a z' || q'z AS "P_NO"
FROM "demotab" "demotab"
WHERE (
a' || q'a z' || q'z "demotab"."b" = :B17 AND
a' || q'a z' || q'z "demotab"."c" = :B2 AND
a' || q'a z' || q'z "demotab"."d" = :B16
) a' ;
**
注意:语法可能不完整。
【问题讨论】:
-
尝试
sqlstr := 'CREATE OR REPLACE PROCEDURE ...'然后DBMS_OUTPUT.PUT_LINE(sqlstr);以查看要执行的语句。
标签: oracle plsql oracle11g oracle10g procedure