DECLARE pvarORDER_HISTORY_NO NUMBER;pvarORDER_HISTORY_NO NUMBER = '222'INSERT INTO SD035_ORDERS_HISTORY_DETAILS_T(
ORDER_HISTORY_NO,
ORDER_NO
)
SELECT
pvarORDER_HISTORY_NO ,ORDER_NO from SD035_ORDERS_HISTORY_DETAILS_T其中pvarORDER_HISTORY_NO是一个变量,我想让 ORDER_HISTORY_NO插入都是一个值,就是pvarORDER_HISTORY_NO,请问这样写在oracle的存储过程中能执行吗,应该怎样改能实现我的要求,谢谢~
注:pvarORDER_HISTORY_NO NUMBER是不固定查询出来的,我上面赋的值只是为了说明用.
ORDER_HISTORY_NO,
ORDER_NO
)
SELECT
pvarORDER_HISTORY_NO ,ORDER_NO from SD035_ORDERS_HISTORY_DETAILS_T其中pvarORDER_HISTORY_NO是一个变量,我想让 ORDER_HISTORY_NO插入都是一个值,就是pvarORDER_HISTORY_NO,请问这样写在oracle的存储过程中能执行吗,应该怎样改能实现我的要求,谢谢~
注:pvarORDER_HISTORY_NO NUMBER是不固定查询出来的,我上面赋的值只是为了说明用.
insert是拼的sql
ORDER_HISTORY_NO,
ORDER_NO
) values ('|| pvarORDER_HISTORY_NO|| ','||ORDER_NO||')';
这个试试
INSERT INTO SD035_ORDERS_HISTORY_DETAILS_T(
ORDER_HISTORY_NO,
ORDER_NO
)
SELECT
'222',ORDER_NO from SD035_ORDERS_HISTORY_DETAILS_T
pvarORDER_HISTORY_NO NUMBER是不固定的,并不一定是222
就是存储过程里面用来执行动态拼出来的sql以及一些比如create index等命令用的
换成查询得到的值:select v_ORDER_HISTORY_NO into pvarORDER_HISTORY_NO from .....
create or replace procedure proc_***
as
pvarORDER_HISTORY_NO NUMBER;beginselect ×× into pvarORDER_HISTORY_NO from tbl;INSERT INTO SD035_ORDERS_HISTORY_DETAILS_T(
pvarORDER_HISTORY_NO,
ORDER_NO
);
exception when others then
raise;
end;其余逻辑请自己加
pvarORDER_HISTORY_NO,
ORDER_NO
);pvarORDER_HISTORY_NO 这个又不是字段名是个变量,能这样写吗?
编译时系统怎么知道把pvarORDER_HISTORY_NO赋给哪个字段...
例子: execute immediate 'select * from dual' into 变量名;
但是在存储过程中要把查询的结果存到一个变量里。