0
以下是我期待做的事情。PL/SQL:根據他們的結局選擇某個列
我需要一個proc,它將採用一個表名稱的IN參數,並且OUT一個只有3列的參考光標。
我想要的列是那些以_NAME_EN,NAME_FR和_ID結尾的列。
我嘗試了這樣的事情,但有時措辭與表名不匹配。
procedure getcodetable(p_table in varchar2, p_refcursor out cur) is
query_str varchar2(1000);
substr_table varchar2(200);
sometable varchar2(200);
begin
substr_table := substr(upper(p_table), 4); -- this should remove the CD_
sometable := trim(trailing 'S' from substr_table); -- this should remove the S at the end
query_str := 'select ' || sometable || '_id as id, ' || sometable || '_name_en as name_en, ' || sometable || '_name_fr as name_fr from ' || p_table;
open p_refcursor for query_str;
end getcodetable;
例如,大多數表的名字將是CD_SOME_TYPES和我在尋找SOME_TYPE_NAME_EN列。但有時,更像SOME_TP_NAME_EN
我在l_name_en_col_name – Karinne
處得到一個「缺少的關鍵字」我給了你一個方法,而不是爲你寫整個東西。您需要在PL/SQL塊中聲明l_name_en_col_name爲'VARCHAR2(30)'。然後仔細檢查所有語法。 –