【发布时间】:2015-10-07 02:02:59
【问题描述】:
我是 Oracle 的新手。当我执行以下语句时
BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM DUAL;';
END;
/
我出错了
从第 2 行开始的错误命令 - BEGIN EXECUTE IMMEDIATE '从双重选择 *;';结尾;
错误报告 - ORA-00911:无效 字符 ORA-06512: 在第 2 行 00911. 00000 - “无效字符” *原因:标识符不能以任何 ASCII 字符开头,除了 字母和数字。 $#_ 也可以在第一个之后 特点。用双引号括起来的标识符可能包含 双引号以外的任何字符。替代报价 (q'#...#') 不能使用空格、制表符或回车作为 分隔符。对于所有其他上下文,请参阅 SQL 语言 参考手册。 *行动:
【问题讨论】:
-
您能告诉我们您通过该声明要达到的目标吗?如果你想看到一些输出,你可以简单地给
select * from dual。 -
试试这个:BEGIN EXECUTE IMMEDIATE 'SELECT * FROM DUAL';结尾;只需删除';'来自动态字符串。
-
@Crazy2crack 我正在尝试从这里创建一个动态查询...oracle-base.com/articles/8i/native-dynamic-sql
-
@Ganesh_Devlekar - 那篇文章中的截断示例是错误的,它也不应该在动态字符串中包含分号。单行查询示例没问题,注意它有一个
into子句。查询的数据必须去某个地方。
标签: oracle oracle11g oracle-sqldeveloper