ORA-00984錯誤:列在此處不允許
select A.channel_id as "頻道ID",C.Name as "頻道名稱",B.id as "應用ID",B.Name as "應用名稱" from work_channel_app A ,work_app B,work_channel C where A.App_Id= B.Id and C.id=1 and A.Channel_Id=1
------ORA-00984列在此處不允許解決方法--------------------------------------------------------
execute immediate 'insert into broker_fund values
(r_hfhd.initdate,r_br.broker_no,r_br.cust_no,r_br.exch_code,r_br.vari_code,r_br.ret_mode,r_br.amt,(r_br.total_fare-r_br.exch_fare)*amt) '
該語句寫錯了,你的變數在這全變成了字串了,可以使用
declare
....
amt1 number;
begin
....
amt1 := r_br.total_fare*amt;
execute immediate 'insert into broker_fund(tx_date,broker_no,cust_no,exch_code,vari_code,ret_mode,amt,fare) values
(:initdate,:broker_no,:cust_no,:exch_code,:vari_code,:ret_mode,:amt,:total_fare) '
using r_hfhd.initdate,r_br.broker_no,r_br.cust_no,r_br.exch_code,r_br.vari_code,r_br.ret_mode,r_br.amt,amt1;
....
end ;
------解決方法--------------------------------------------------------
IF r_br.ret_mode= '2 '
把該情況的sql單獨在資料庫裡執行一下看看有沒有什麼錯誤 ...