2013-04-08 87 views
0

我能做些什麼,如果我想插入語句傳遞給這個函數作爲參數,並在功能和返回值執行它通過查詢語句[INSERT,UPDATE]用作參數,並執行它

create or replace function new_record (p_name your_table.first_name%type) 
    return your_table.id%type 
is 
    return_value your_table.id%type; 
begin 
    begin 
     insert into your_table (id, first_name) 
      values (your_seq.nextval, p_first_name) 
     returning id into return_value; 
    exception 
     when dup_val_on_index then 
      return_value := 0; 
    end; 
    return return_value; 
end; 
+0

使用動態SQL如執行即時'INSERT語句'; – Satya 2013-04-08 09:37:50

+0

我如何使用它 – 2013-04-08 09:41:46

回答

1

使用「execute immediate」聲明:

這是簡單的例子,只是執行這個SQL,你會看到它是如何工作:

declare 
    p_param number := 123; 
    l_res varchar2(10); 
    l_sqltext varchar(100); 
begin 
    l_sqltext := 'begin select t.dummy into :1 from dual t where 123 = :2; end;'; 
    execute immediate l_sqltext using out l_res, in p_param; 
    dbms_output.put_line(l_res); 
end; 
相關問題