使用動態 SQL 選擇值

假設使用者想要從不同的表中選擇資料。表由使用者指定。

 function get_value(p_table_name varchar2, p_id number) return varchar2 is
    value varchar2(100);
  begin
    execute immediate 'select column_value from ' || p_table_name || 
                      ' where id = :P' into value using p_id;
    return value;
  end;

像往常一樣呼叫此函式:

declare
  table_name varchar2(30) := 'my_table';
  id number := 1;
begin
  dbms_output.put_line(get_value(table_name, id));
end;

要測試的表:

create table my_table (id number, column_value varchar2(100));
insert into my_table values (1, 'Hello, world!');