0
下面是我正在處理的pl/sql代碼的一部分。我想生成dyamic sql,查看i_emp Nested Table中的值並將結果返回給CharArray。下面的代碼無法正常工作,需要在固定的代碼使用嵌套表在Oracle PL/SQL中構建動態SQl
幫助這只是示例代碼,應使用動態SQL
TYPE NestArray IS TABLE OF VARCHAR2(50);
TYPE CharArray IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;
PROCEDURE SAMPLE(i_emp IN NestArray)
v_emp_name CharArray;
v_sql := 'SELECT emp_name FROM emp ';
v_sql := v_sql || ' WHERE empid IN (SELECT column_value FROM TABLE('||i_emp||'))';
EXECUTE IMMEDIATE v_sql BULK COLLECT INTO v_emp_name;
end;
爲什麼這需要動態?也許如果你解釋你的數據是如何配置的,我們可以爲你提供更好的解決方案。現在,這個查詢沒有理由是動態的。 –
我的代碼包含一些基於哪些sql將生成類似於下面的條件IF i_emp_flg ='Y'THEN v_sql:= v_sql || 'AND emp_address ='''|| i_emp_address ||''''; ELSIF i_emp_flg ='N'THEN v_sql:= v_sql || 'AND emp_address IS NULL'; – Harish
類型和程序是在一個包? – Recoil