我有PL / SQL函数,它动态创建select语句,并将此语句作为varchar.Because返回,因为我需要此语句动态工作(每次返回不同的列数/名称)。例如,它可以返回此select
export class LoginPage implements AfterViewInit {
ngAfterViewInit(){
setTimeout( ()=>{
console.log('works')
}, 5000)
}
}
我有另一个函数必须使用这个select语句结果。 但是第二个select语句返回该字符串并且不能执行这个select语句。
如何使第一个函数返回结果为sql?
答案 0 :(得分:1)
如果调用者知道结果的结构:
CREATE OR REPLACE PROCEDURE execute_query(query IN VARCHAR2)
TYPE cur_typ IS REF CURSOR;
c cur_typ;
ID NUMBER;
Name VARCHAR2(20);
Currency VARCHAR2(20);
Note VARCHAR2(200);
BEGIN
OPEN c FOR query;
LOOP
FETCH c INTO ID, Name, Currency, Note;
EXIT WHEN c%NOTFOUND;
....
END LOOP;
CLOSE c;
END;
/
答案 1 :(得分:0)
使用 EXECUTE IMMEDIATE Statement
如文件中所述: https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/13_elems017.htm