execute immediate执行sql问题
我写一个存储过程创建索引,定义一个变量
v_sql:='create index'||' '||i.index_name||' '||'on'||' '||i.table_name||'('||i.column_name||')'||' '||'tablespace'||' '||i_tablespace_name;
然后execute immediate v_sql; 一直报错:
ORA-00942: 表或视图不存在。。将execute immediate v_sql注释掉,程序是没问题的。一致报这一行错误。请问execute immediate v_sql;这样写法错了吗???
------解决方案--------------------你可以先将v_sql打印出来然后执行你打印出来的这句命令看能成功么
------解决方案--------------------execute immediate v_sql只是执行这个字符串的SQL,你把它注释掉当然就不会执行,也就不会报错了。
按楼上所说先打印出你的sql语句,在SQL window中执行看看。
根据你的报错信息,初步问题是相关的表不存在,应先检查相关的对象是否存在
------解决方案--------------------缺失右括号 很有可能是拼接错误 你还是要打印出来才行