0
我想用另一個變量定義一個變量。目的是在運行時替換變量中的值。如何在oracle中使用另一個變量定義一個變量sql
我不確定我是否問正確的問題或說明正確的例子。
DECLARE param1 VARCHAR(10);
DECLARE param2 VARCHAR(10);
DECLATE tempVar VARCHAR(1):= 'A';
DECLARE query VARCHAR(200) := 'select * from tmp_table where col1 = <variable>';
BEGIN
IF tempVar = 'A' THEN
-- EXECUTE IMMEDIATE query using param 1;
ELSE
-- EXECUTE IMMEDIATE query using param 2;
END IF;
END;
這會工作,但是,什麼我在不同的變量尋找具體運行時間變量替換。我有一個查詢,我需要在不同的表上查詢20次。除表名外,沒有任何變化。我已經用我的基本查詢聲明瞭變量。我想我需要的是一種修改我的變量來替換表名並執行結果查詢的方法。 – 2013-03-22 01:12:45
讀取你的第一個過程:val在運行時被替換爲l_temps的值? – 2013-03-22 01:16:50
@FarhanSyed - ':val'是一個綁定變量,因此'param1'中的值在運行時使用。 'l_temps'是存儲'SELECT'語句結果的集合。綁定變量用於改變您在謂詞中使用的值。在你的問題中,你正在討論動態地改變謂詞中的值。如果你真的想改變查詢表,那是完全不同的問題。你不能使用表名的綁定變量。在執行之前,您必須動態組裝SQL語句。 – 2013-03-22 04:07:05