在from後面使用變量
CREATE OR REPLACE FUNCTION GET_TABLE_COUNT(
I_TabNa IN VARCHAR
I_Owner IN VARCHAR
)
RETURN NUMBER
IS
V_RtnVal NUMBER ;
V_CursorId INTEGER ;
V_SqlStr VARCHAR
BEGIN
V_CursorId := DBMS_SQL
IF LENGTHB( RTRIM( LTRIM( NVL( I_Owner
V_SqlStr :=
ELSE
V_SqlStr :=
END IF ;
DBMS_SQL
DBMS_SQL
IF DBMS_SQL
NULL ;
END IF ;
IF DBMS_SQL
RETURN
END IF ;
DBMS_SQL
DBMS_SQL
RETURN V_RtnVal ;
EXCEPTION
WHEN OTHERS THEN
DBMS_SQL
RETURN
END GET_TABLE_COUNT;
試驗結果
SQL> select GET_TABLE_COUNT(
GET_TABLE_COUNT(
SQL> select GET_TABLE_COUNT(
GET_TABLE_COUNT(
SQL> select GET_TABLE_COUNT(
GET_TABLE_COUNT(
SQL>
說明
DEFINE_COLUMN是用作定義數據類型的
聯編變量是一種非常好的傳遞參數的方式
V_SqlStr :=
DBMS_SQL
V_TabName :=
DBMS_SQL
CREATE OR REPLACE FUNCTION GET_TABLE_COUNT(
I_TabNa IN VARCHAR
I_Owner IN VARCHAR
)
RETURN NUMBER
IS
V_RtnVal NUMBER ;
V_TabName VARCHAR
BEGIN
IF LENGTHB( RTRIM( LTRIM( NVL( I_Owner
V_TabName := I_TabNa ;
ELSE
V_TabName := I_Owner||
END IF ;
EXECUTE IMMEDIATE
RETURN V_RtnVal ;
EXCEPTION
WHEN OTHERS THEN
RETURN
END GET_TABLE_COUNT ;
SQL*PLUS環境輸入
我們知道在SQL*PLUS默認環境裡會把
有些時候我們也需要在SQL>的符號下輸入
SQL> set define off;
是把默認的&綁定變量的功能取消
SQL> set define on;
打開&綁定變量的功能
SQL> show define;
查看當前SQL*PLUS的define狀態
舉例說明:
SQL> CREATE TABLE TEST
ID NUMBER (
NAME VARCHAR
SQL> show define;
define
SQL> insert into test
Enter value for a: abc
Enter value for n:
old
new
SQL> commit;
Commit complete
SQL> set define off;
SQL> insert into test
SQL> commit;
Commit complete
SQL> select * from test
ID NAME
From:http://tw.wingwit.com/Article/program/Oracle/201311/16669.html