create or replace procedure getResultset(tablename varchar2,rst out sys_refcursor) is begin open rst for 'select * from '||tablename; end;
动态的表名和execute imediate有什么关系? 二楼的方式不行吗?
open rst for 'select * from '||tablename; 这句话什么意思
你可以試下以下語句:CREATE OR REPLACE PROCEDURE NAME ( TABLENAME VARCHAR2, V_ID NUMBER,
) AS SQL VARCHAR2(200); BEGIN SQL='select * from '||table_name ||'where OBID=V_ID'; EXECUTE IMMEDIATE SQL; END NAME; 這個語句只能執行SELECT 語句,如果想把結果返回出來,最好再定義一個CURSOR 返回一個臨時的記錄集!
execute imediate sql
begin
open rst for 'select * from '||tablename;
end;
二楼的方式不行吗?
open rst for 'select * from '||tablename;
这句话什么意思
(
TABLENAME VARCHAR2,
V_ID NUMBER,
)
AS
SQL VARCHAR2(200);
BEGIN
SQL='select * from '||table_name ||'where OBID=V_ID';
EXECUTE IMMEDIATE SQL;
END NAME;
這個語句只能執行SELECT 語句,如果想把結果返回出來,最好再定義一個CURSOR 返回一個臨時的記錄集!