DBMS_ASSERTサブプログラムの要約
ENQUOTE_LITERALファンクション
このファンクションは、文字列リテラルを開始一重引用符と終了一重引用符で囲みます。
構文
DBMS_ASSERT.ENQUOTE_LITERAL (
str VARCHAR2)
RETURN VARCHAR2;
ENQUOTE_NAMEファンクション
このファンクションは、名前を二重引用符で囲みます。
構文
DBMS_ASSERT.ENQUOTE_NAME (
str VARCHAR2,
capitalize BOOLEAN DEFAULT TRUE)
RETURN VARCHAR2;
NOOPファンクション
このファンクションは、チェックなしで値を戻します。
構文
DBMS_ASSERT.NOOP (
str VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2 CHARACTER SET str%CHARSET;
DBMS_ASSERT.NOOP (
str CLOB CHARACTER SET ANY_CS)
RETURN CLOB CHARACTER SET str%CHARSET;
QUALIFIED_SQL_NAMEファンクション
このファンクションは、入力文字列が修飾SQL名であることを検証します。
構文
DBMS_ASSERT.QUALIFIED_SQL_NAME (
str VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2 CHARACTER SET str%CHARSET;
使用上の注意
修飾SQL名<qualified name>は、次の文法で表現できます。
<local qualified name> ::= <simple name> {'.' <simple name>}
<database link name> ::= <local qualified name> ['@' <connection string>]
<connection string> ::= <simple name>
<qualified name> ::= <local qualified name> ['@' <database link name>]
SCHEMA_NAMEファンクション
このファンクションは、入力文字列が既存のスキーマ名であることを検証します。
構文
DBMS_ASSERT.SCHEMA_NAME (
str VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2 CHARACTER SET str%CHARSET;
使用上の注意
定義上は、スキーマ名は単純SQL名である必要はありません。たとえば、"FIRST
LAST
"は有効なスキーマ名です。したがって、スキーマ名の出力は、SQLテキストに連結する前に引用符で囲む必要があります。
SIMPLE_SQL_NAMEファンクション
このファンクションは、入力文字列が単純SQL名であることを検証します。
構文
DBMS_ASSERT.SIMPLE_SQL_NAME (
str VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2 CHARACTER SET str%CHARSET;
使用上の注意
-
入力値は次の条件を満たす必要があります。
-
名前はアルファベット文字で始める必要があります。2文字目以降は、英数字、_、$および#を使用できます。
-
引用符付きのSQL名も使用できます。
-
引用符付きの名前は、二重引用符で囲む必要があります。
-
引用符付きの名前は、引用符の間に任意の文字を使用できます。
-
名前内の引用符は、引用文字を2つ連続して表記します。たとえば、"a name with "" inside"は有効な引用符付きの名前です。
-
入力パラメータには、先頭または末尾(あるいはその両方)に任意の数の空白文字を含むことができます。
-
名前の長さはチェックされません。
SQL_OBJECT_NAMEファンクション
このファンクションは、入力パラメータ文字列が既存のSQLオブジェクトの修飾SQL識別子であることを検証します。
構文
DBMS_ASSERT.SQL_OBJECT_NAME (
str VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2 CHARACTER SET str%CHARSET;
例外
ORA44002
: オブジェクト名が無効です
使用上の注意
シノニムを使用するにはベース・オブジェクトが存在している必要があります。