oracle 建表语句外面执行正常,放到存储过程执行不出来 10

EXECUTEIMMEDIATE'CREATETABLETMP_BASE_CALL_1ASSELECTAREA_ID,(CASEWHENLENGTH(CALLING_NB... EXECUTE IMMEDIATE 'CREATE TABLE TMP_BASE_CALL_1 AS
SELECT AREA_ID,
(CASE WHEN LENGTH(CALLING_NBR)=7 OR LENGTH(CALLING_NBR)=8 OR LENGTH(CALLING_NBR)=11 THEN CALLING_AREA_CODE ELSE func_update_tel_area(CALLING_AREA_CODE,CALLING_NBR,''0'') END) CALLING_AREA_CODE,
(CASE WHEN LENGTH(CALLING_NBR)=7 OR LENGTH(CALLING_NBR)=8 OR LENGTH(CALLING_NBR)=11 THEN CALLING_NBR ELSE func_update_tel_area(LTRIM(CALLING_AREA_CODE,''0''),CALLING_NBR,''1'') END) CALLING_NBR,
(CASE WHEN LENGTH(CALLED_NBR)=7 OR LENGTH(CALLED_NBR)=8 OR LENGTH(CALLED_NBR)=11 THEN CALLED_AREA_CODE ELSE func_update_tel_area(CALLED_AREA_CODE,CALLED_NBR,''0'') END) CALLED_AREA_CODE,
(CASE WHEN LENGTH(CALLED_NBR)=7 OR LENGTH(CALLED_NBR)=8 OR LENGTH(CALLED_NBR)=11 THEN CALLED_NBR ELSE func_update_tel_area(LTRIM(CALLED_AREA_CODE,''0''),CALLED_NBR,''1'') END) CALLED_NBR,
START_TIME,
DURATION,
CALLING_CSDN,
CALLED_CSDN,
CALL_TYPE,
SERVICE_DATE
FROM BASE_CALL
WHERE AREA_ID = '''||V_LAN||'''
AND SERVICE_DATE = '''||V_SERV_DATE||'''';
为什么把建表语句后面这些拿出来外面执行就没有问题,很快就出来,但是如果把这些放存储过程中执行就出不来了,高手帮忙看下,谢谢
可是我就是单独拿出来执行没有问题呀,很奇怪,请高手再帮忙看下,谢谢!
我也试过了把这语句放在V_SQL的变量中,再执行EXECUTE IMMEDIATE V_SQL,可是还是一样的慢,或者执行不过去,不知道为什么?
展开
 我来答
bnp03853
2011-01-19 · TA获得超过762个赞
知道小有建树答主
回答量:726
采纳率:0%
帮助的人:537万
展开全部
如果存储过程不复杂可以直接在代码里做。比如创建表,插入数据,读取数据,在dao中批量执行就OK了。
不知道你是不是想输出存储过程里面执行的语句,验证存储过程正确性或者存储过程中执行语句的速度。如果是java程序获取存储过程的语句,在存储过程中定义一个变量用来存放需要执行的语句,执行这条语句用EXECUTE IMMEDIATE。例如定义变量
v_sql := 'insert into test(test_col) values(1)';
执行语句
execute IMMEDIATE v_sql;
提交
commit;
然后把需要输出的语句放入临时表。
如果需要在java程序中输出则直接读取这张表相应记录就可以了。
tpj_wow
2011-01-19 · TA获得超过532个赞
知道小有建树答主
回答量:232
采纳率:100%
帮助的人:292万
展开全部
语句太长了,中间有一段引号之类的东西 ,可能就出现问题了
你加个字符串变量 v_sql保存一下建表语句,然后执行这条语句吧
单步执行,看一下这个变量的值,拷贝出来执行以下你就知道错误在哪里了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wodi1015
2011-01-19 · TA获得超过115个赞
知道答主
回答量:156
采纳率:0%
帮助的人:79.7万
展开全部
没有错误代码么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式