EXECUTE IMMEDIATE Sqlstatement 时出错,ORA-00922: 缺少或无效选项

AechoJohn 2005-09-07 05:27:37
在Sql worksheet 里执行下面语句

declare v_suffix VARCHAR2(20) ;
v_sql VARCHAR2(30000) ;

begin
...

-- 创建任务描述表
v_sql := 'CREATE TABLE "FC_USER"."Tmp_' || v_suffix
|| ' ("ID" NUMBER(10) DEFAULT 0 NOT NULL
, "PID" NUMBER(10)
, "Title" VARCHAR2(255) DEFAULT '' NOT NULL
, "Content" VARCHAR2(400 ) DEFAULT '' NOT NULL
....
;

第47行 EXECUTE IMMEDIATE v_sql ;

...
end ;
搞不定了:
返回错误如下:

declare v_suffix VARCHAR2(20) ;
*
ERROR 位于第 1 行:
ORA-00922: 缺少或无效选项
ORA-06512: 在line 47
...全文
251 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AechoJohn 2005-09-11
  • 打赏
  • 举报
回复
把v_sql的值写到数据库中发现就是 在v_suffix 后面少了个 "。
谢谢了;)
waterfirer 2005-09-08
  • 打赏
  • 举报
回复
创建任务描述表有问题,
v_sql := 'CREATE TABLE "FC_USER"."Tmp_' || v_suffix
|| '(缺少")("ID" NUMBER(10) DEFAULT 0 NOT NULL
, "PID" NUMBER(10)
, "Title" VARCHAR2(255) DEFAULT ''(此处前面的'变成结束符了,其实把default ''去了就行了) NOT NULL
, "Content" VARCHAR2(400 ) DEFAULT '' NOT NULL
....
;
还可能问题在你的“...”中
wfeng7907 2005-09-08
  • 打赏
  • 举报
回复
检查一下你的v_sql中的语句是否可以正常运行!
AechoJohn 2005-09-07
  • 打赏
  • 举报
回复
看都没有人看,自己顶一下。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧