动态的SQL问题 我写的代码如下:
declare
VLdate varchar2(10):='2005-10-10';
User_id varchar2(4):='0788';
sql_str varchar2(1000);
begin
sql_str:=
'create table T_C_Stock
As
select '||''''||User_id||''''||' user_id,b.d_vendorid vendorid ,
a.ref_card_no card_no,b.warehouse warehouse
,sum((decode(b.iotype,''1'',1,-1) * ( qty * decode(b.unit,a.stock_unit,1,decode(substr(a.card_no,7,4),''0000'',1,nvl(b.price_rate,0)
)
) + spare_qty
)
)
) stock_qty
,b.price_rate price_rate,a.currency currency
from sales.product_info a
,sales.stockiohis b
where to_char(b.cday,''yyyy-mm-dd'') = '||''''||VLdate||''''||' and
a.card_no = b.card_no and
b.category<>''00'' and
b.warehouse=''C''
group by '||''''||User_id||''''||' ,b.d_vendorid,a.ref_card_no,b.warehouse
,a.currency,b.price_rate
order by b.d_vendorid,a.ref_card_no' ;
execute immediate sql_str;
end;运行时提示:ORA-06502: PL/SQL: 數字或值錯誤
ORA-06512: 在 line 6
但是我直接在SQL中运行此 sql_str 是没有问题的。去掉 to_char(b.cday,''yyyy-mm-dd'') = '||''''||VLdate||''''||' and 也可以运行。我查不出什么原因. 请大家帮我看看。谢谢!