欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

oracle如何實現動態字段別名

錢衛國2年前14瀏覽0評論

oracle如何實現動態字段別名?

在PLSQL中使用EXECUTEIMMEDIATE語句處理動態SQL語句。

語法如下:

EXECUTEIMMEDIATEdynamic_string

[INTO{define_variable[,define_variable]...|record}]

[USING[IN|OUT|INOUT]bind_argument

[,[IN|OUT|INOUT]bind_argument]...]

[{RETURNING|RETURN}INTObind_argument[,bind_argument]...];

dynamic_string是代表一條SQL語句或一個PL/SQL塊的字符串表達式,

define_variable是用于存放被選出的字段值的變量,

record是用戶定義或%ROWTYPE類型的記錄,用來存放被選出的行記錄。

輸入bind_argument參數是一個表達式,它的值將被傳入(IN模式)或傳出(OUT模式)或先傳入再傳出(INOUT模式)到動態SQL語句或是PL/SQL塊中。一個輸出bind_argument參數就是一個能保存動態SQL返回值的變量。

除了多行查詢外,動態字符串可以包含任何SQL語句(不含終結符)或PL/SQL塊(含終結符)。

字符串中可以包括用于參數綁定的占位符。

但是,不可以使用綁定參數為動態SQL傳遞模式對象。

在用于單行查詢時,INTO子句要指明用于存放檢索值的變量或記錄。

對于查詢檢索出來的每一個值,INTO子句中都必須有一個與之對應的、類型兼容的變量或字段。

在用于DML操作時,RETURNINGINTO子句要指明用于存放返回值的變量或記錄。

對于DML語句返回的每一個值,INTO子句中都必須有一個與之對應的、類型兼容的變量或字段。

我們可以把所有的綁定參數放到USING子句中。默認的參數模式是IN。

對于含有RETURNING子句的DML語句來說,我們可以把OUT參數放到RETURNINGINTO之后,并且不用指定它們的參數模式,因為默認就是OUT。

如果我們既使用了USING又使用RETURNINGINTO,那么,USING子句中就只能包含IN模式的參數了。

運行時,動態字符串中的綁定參數會替換相對應的占位符。所以,每個占位符必須與USING子句和/或RETURNINGINTO子句中的一個綁定參數對應。我們可以使用數字、字符和字符串作為綁定參數,但不能使用布爾類型(TRUE,FALSE和NULL)。要把空值傳遞給動態字符串,我們就必須使用工作區。

動態SQL支持所有的SQL類型。所以,定義變量和綁定變量都可以是集合、LOB,對象類型實例和引用。

作為一項規則,動態SQL是不支持PL/SQL特有的類型的。這樣,它就不能使用布爾型或索引表。

我們可以重復為綁定變量指定新值執行動態SQL語句。但是,每次都會消耗很多資源,因為EXECUTEIMMEDIATE在每次執行之前都需要對動態字符串進行預處理。