PROCEDURE initOneProbationaryThesaurus(orderid NUMBER) is
PORTAL_SUCCESS_FLAG NUMBER := 1; --成功标志位
dtableodd varchar2(1000);
dtableeven varchar2(1000);
ctableodd varchar2(1000);
ctableeven varchar2(1000);
begin
dtableodd := 'delete zt_order_term_even';
dtableeven := 'delete zt_order_term_odd';
ctableodd := 'insert into zt_order_term_even as
SELECT * FROM (
select rownum rn,temp.* from (
select wrs.order_id,qs.busi_term term from ZT_ORDER_QUESTION_SUMMARY qs,zt_working_order wrs
where qs.order_id = wrs.order_id
and wrs.order_id = '+orderid+'
) temp ) tt
where mod(tt.rn, 2) = 0;';
ctableeven := 'insert into zt_order_term_odd as
SELECT * FROM (
select rownum rn,temp.* from (
select wrs.order_id,qs.busi_term term from ZT_ORDER_QUESTION_SUMMARY qs,zt_working_order wrs
where qs.order_id = wrs.order_id
and wrs.order_id = '+orderid+'
) temp ) tt
where mod(tt.rn, 2) = 1;';
execute immediate dtableodd;
execute immediate dtableeven;
execute immediate ctableodd;
execute immediate ctableeven;
commit;
end
执行:
call init_data.initOneProbationaryThesaurus(85372)
调用后报错...
开始执行命令时出错:
call init_data.initOneProbationaryThesaurus(85372)
错误报告:
SQL 错误: ORA-06502: PL/SQL: 数字或值错误 : 字符到数值的转换错误
ORA-06512: 在 "YEWUSHITU.INIT_DATA", line 444
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause: 444行是:call init_data.initOneProbationaryThesaurus(85372)
PORTAL_SUCCESS_FLAG NUMBER := 1; --成功标志位
dtableodd varchar2(1000);
dtableeven varchar2(1000);
ctableodd varchar2(1000);
ctableeven varchar2(1000);
begin
dtableodd := 'delete zt_order_term_even';
dtableeven := 'delete zt_order_term_odd';
ctableodd := 'insert into zt_order_term_even as
SELECT * FROM (
select rownum rn,temp.* from (
select wrs.order_id,qs.busi_term term from ZT_ORDER_QUESTION_SUMMARY qs,zt_working_order wrs
where qs.order_id = wrs.order_id
and wrs.order_id = '+orderid+'
) temp ) tt
where mod(tt.rn, 2) = 0;';
ctableeven := 'insert into zt_order_term_odd as
SELECT * FROM (
select rownum rn,temp.* from (
select wrs.order_id,qs.busi_term term from ZT_ORDER_QUESTION_SUMMARY qs,zt_working_order wrs
where qs.order_id = wrs.order_id
and wrs.order_id = '+orderid+'
) temp ) tt
where mod(tt.rn, 2) = 1;';
execute immediate dtableodd;
execute immediate dtableeven;
execute immediate ctableodd;
execute immediate ctableeven;
commit;
end
执行:
call init_data.initOneProbationaryThesaurus(85372)
调用后报错...
开始执行命令时出错:
call init_data.initOneProbationaryThesaurus(85372)
错误报告:
SQL 错误: ORA-06502: PL/SQL: 数字或值错误 : 字符到数值的转换错误
ORA-06512: 在 "YEWUSHITU.INIT_DATA", line 444
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause: 444行是:call init_data.initOneProbationaryThesaurus(85372)
解决方案 »
- oracle sql%rowcount 的问题
- oracle11g 的正则表达式怎么实现 向前向后查看
- 求第一行为统计,下面为明细的oracle中的SQL。
- 急,求助一条SQL语句写法!!!
- sql判断数字
- oracle 10g控制文件迁移问题,请高手帮忙一下,谢谢!!
- CSDN error????
- ORACLE公司网站下载的9i for win98,安装好后无法创建新的数据库,为什么?
- 在Solaris操作系统下,ORACLE中PRO*C问题,急用(在线等)
- 哪有oracle procedure builder 可以下载
- ORACLE远程访问sqlserver2000数据库,无法调用自定义函数和存储过程
- 有没有办法让下面两个SQL排序结果的第一条是一样的
1.动态SQL语句的结尾不能有分号“;';”
2.就是上面说到的问题,还可以用参数