機能の適用範囲
この内容はOceanBaseデータベースのOracleモードでのみ適用されます。
PLS-00001:PL/SQL common error", "%s
OceanBase エラーコード:9656
SQLSTATE:HY000
エラーの原因:予期しない記号が出現しました。
解決策:エラーが発生した箇所に現れた記号は予期されていないものです。エラー箇所の記号を修正してください。
PLS-00103:Encountered the symbol %s when expecting one of the following: %s
OceanBase エラーコード:9700
SQLSTATE:HY000
エラーの原因:構文解析器が、この文脈では適切でないマーカーを検出しました。
解決策:前のトークンとエラーメッセージで示されたトークンを確認してください。エラーメッセージで示されている行番号と列番号は、誤った言語構造の終端位置を示しています。
PLS-00109:unknown exception name '%.*s' in PRAGMA EXCEPTION_INIT
OceanBase エラーコード:9583
SQLSTATE:HY000
エラーの原因:
EXCEPTION_INITコンパイル指示で参照されている例外名の宣言が、コンパイル指示の範囲内に見つかりませんでした。解決策:
pragmaが例外宣言に従っており、同一範囲内にあることを確認してください。
PLS-00113:END identifier '%.*s' must match '%.*s
OceanBase エラーコード:9659
SQLSTATE:HY000
エラーの原因:キーワード
ENDは、いくつかの言語構造(例:ループ、ブロック、関数、プロシージャ)を終了させます。その後、その構造の名前を置くことができます。例えば、ループLの定義の最後にはEND Lと書くことができます。選択可能な名前が言語構造に指定された名前と一致しない場合、このエラーが発生します。これは通常、スペルミスのある識別子や誤ったブロック構造が原因です。解決策:終了識別子のスペルが言語構造に指定された名前と一致し、ブロック構造が正しいことを確認してください。
PLS-00114:identifier ' %.*s' too long
OceanBase エラーコード:9526
SQLSTATE:HY000
エラーの原因:PL変数の名前が128文字を超えています。有効な識別子(引用符を含む識別子を含む)の最大長は128文字です。文字列リテラルがシングルクォートではなくダブルクォートで誤って囲まれている可能性があります。その場合、PLはそれを引用符付き識別子と見なします。
解決策:識別子を短縮してください。
PLS-00115:this PRAGMA must follow the declaration of '%.*s
OceanBase エラーコード:9622
SQLSTATE:HY000
エラーの原因:
pragmaが参照範囲内にない、または宣言されていないPL/SQLオブジェクトを指しています。識別子はpragma内で使用する前に宣言されていなければなりません。転送参照は許可されていません。解決策:識別子のスペルと宣言を確認してください。また、宣言がブロック構造内に正しく配置されていることも確認してください。
PLS-00119:Duplicate having-clause in table expression
OceanBase エラーコード:9501
SQLSTATE:HY000
エラーの原因:
SELECTステートメント内で2つ以上のHAVING句が見つかりました。解決策:1つの
HAVING句を削除し、必要に応じてANDまたはORで論理式を結合してください。
PLS-00124:name of exception expected for first arg in exception_init pragma
OceanBase エラーコード:9674
SQLSTATE:HY000
エラーの原因:例外
exception_initpragmaに渡された最初のパラメータが例外名ではありません。解決策:最初のパラメータを合法的に宣言された例外名に置き換えてください。
PLS-00128:Illegal number of arguments for pragma EXCEPTION_INIT
OceanBase エラーコード:9675
SQLSTATE:HY000
エラーの原因:
pragmaに渡されたパラメータ(実際のパラメータ)の数(コンパイラ指示)が正しくありません。パラメータリストで必須パラメータが省略されているか、pragmaの構文に誤りがあります(例:2つのパラメータの間にカンマが欠けている可能性があります)。解決策:欠けているパラメータを追加するか、誤った構文を修正してください。
PLS-00130:Pragma %s expects 1st argument to be a procedure/function/package/cursor
OceanBase エラーコード:9661
SQLSTATE:HY000
エラーの原因:必要に応じて、名前付けられた
pragma(コンパイラ指示)に渡される最初の引数(実際の引数)がサブルーチン、パッケージ、またはカーソルの名前ではありません。引数のスペルミス、またはpragmaの構文エラー(例えば、2つの引数の間にカンマが欠けている可能性があります)が考えられます。解決策:最初の引数のスペルを確認し、正しい構文を使用していることを確認します。
PLS-00132:Pragma %s does not support %.*s
OceanBase エラーコード:9658
SQLSTATE:HY000
エラーの原因:この
pragmaに渡されたパラメータの1つが許容値リストに含まれていません。引数のスペルミス、またはpragmaの構文エラー(例えば、2つの引数の間にカンマが欠けている可能性があります)が考えられます。解決策:すべてのパラメータのスペルを確認し、正しい構文を使用していることを確認します。
PLS-00154:An object type may have only 1 MAP or 1 ORDER method
OceanBase エラーコード:9523
SQLSTATE:HY000
エラーの原因:複数の
MAPまたはORDER関数が宣言されています。オブジェクト型はMAP関数またはORDER関数のどちらか一方を1つしか持てず、複数のMAP関数や複数のORDER関数を持つことはできません。また、両方を同時に持つこともできません。
PLS-00155:Only a function may be a MAP, ORDER or CONSTRUCTOR method
OceanBase エラーコード:9525
SQLSTATE:HY000
エラーの原因:プロシージャが
MAP、ORDER、またはCONSTRUCTORメソッドとして宣言されています。MAP、ORDER、またはCONSTRUCTORメソッドは関数のみが持てます。
PLS-00157:Only schema-level programs
allow %s
OceanBase エラーコード:9506
SQLSTATE:HY000
エラーの原因:パッケージまたは型に
AUTHIDまたはDEFAULT COLLATION句が指定されています。これらの句はスキーマレベルのストアドプロシージャ、パッケージ、および型でのみサポートされています。解決策:句を削除します。
PLS-00168:string'", "duplicate modifier specification '%s'
OceanBase エラーコード:9643
SQLSTATE:HY000
エラーの原因:メソッドまたはオブジェクト型修飾子が重複して指定されています。
解決策:1回を除くすべての重複する修飾子を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00169:modifier '%s' conflicts with prior '%s' specification
OceanBase エラーコード:9642
SQLSTATE:HY000
エラーの原因:指定されたメソッドまたはオブジェクト型修飾子が、以前の修飾子と競合します。例えば、最終修飾子は非最終修飾子と組み合わせることはできません。
解決策:競合する修飾子の1つを削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00172:string literal too long
OceanBase エラーコード:9644
SQLSTATE:HY000
エラーの原因:文字列リテラルの長さが32767バイトを超えています。
解決策:最大32767バイトの文字列リテラルを使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00179:$ERROR: %.*s
OceanBase エラーコード:9540
SQLSTATE:HY000
エラーの原因:
$ERROR指示が使用されています。
PLS-00182: Identifier cannot be an empty string
OceanBase エラーコード:9657
SQLSTATE:HY000
エラーの原因:識別子が空文字列で宣言されています。
解決策:識別子を非空文字列に名前変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00201: identifier '%.*s' must be declared
OceanBase エラーコード:5543、5546
SQLSTATE:42000
エラーの原因:
宣言されていない変数、例外プログラム、プロシージャへの参照。
権限が付与されていない型への参照。
ロールによってのみ権限が付与された型への参照。
ストレージオブジェクト(パッケージ、プロシージャ、関数、トリガー、ビュー)がオブジェクト所有者のセキュリティドメイン内で実行され、
PUBLICを除くどのロールも有効になっていない場合。
解決策:
参照している名前のスペルと宣言を確認します。
参照先の宣言がブロック構造内に正しく配置されているか確認します。
実際に参照先が宣言されており、参照する権限があると思われる場合は、権限を確認します。
PLS-00204:function or pseudo-column '%s' may be used inside a SQL statement only
OceanBase エラーコード:9682
SQLSTATE:HY000
エラーの原因:プログラム文で疑似列または禁止された関数が使用されています。SQL疑似列(LEVEL、ROWID、ROWNUM)はSQL文でのみ宣言できます。同様に、一部の関数(例:DECODE、DUMP、VSIZE)やSQL集約関数(平均値、最小値、最大値、カウント、合計、STDEV、分散)はSQL文内でのみ使用できます。
解決策:プログラムから疑似列の参照や関数呼び出しを削除します。または、プログラム文をSELECT INTO文に置き換えます。例えば、
bonus := DECODE(rating, 1, 5000, 2, 2500, ...);の代わりにSELECT DECODE(rating, 1, 5000, 2, 2500, ...) INTO bonus FROM dual;を使用します。
PLS-00206:%%TYPE must be applied to a variable, column, field or attribute, not to '%.*s'
OceanBase エラーコード:9547
SQLSTATE:HY000
エラーの原因:
%TYPEデータ型属性を使用して宣言されたプログラムオブジェクトが適切なタイプではありません。このタイプは変数、列、レコードグループ属性、サブプログラムの形式パラメータ、または他の代入可能なオブジェクトである必要があります。解決策:変数宣言に初期化句を追加します。初期化の構文が複雑すぎる場合は、関数呼び出しを追加できます。
PLS-00218:a variable declared NOT NULL must have an initialization assignment
OceanBase エラーコード:9514
SQLSTATE:HY000
エラーの原因:通常、宣言に初期化句がない変数は自動的に
NULLに初期化されます。これはNOT NULL変数にとっては論理的ではありません。そのため、初期化句が必要です。解決策:変数宣言に初期化句を追加します。初期化の構文が複雑すぎる場合は、関数呼び出しを追加できます。
PLS-00221:%s' is not a procedure or is undefined
OceanBase エラーコード:9683
SQLSTATE:HY000
エラーの原因:プロシージャとして参照された識別子が宣言されていない、または実際には別のオブジェクトを表しています(例えば、関数として宣言されている可能性があります)。
解決策:識別子のスペルと宣言を確認します。また、宣言がブロック構造内に正しく配置されていることを確認します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00222:no function with name '%.*s' exists in this scope
OceanBase エラーコード:9627
SQLSTATE:HY000
エラー原因:関数として参照されている識別子が宣言されていないか、実際には他のオブジェクトを表しています(例えば、プロシージャとして宣言されている可能性があります)。
解決策:識別子のスペルと宣言を確認します。また、宣言がブロック構造内に正しく配置されていることも確認する必要があります。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00225:subprogram or cursor '%.*s' reference is out of scope
OceanBase エラーコード:9628
SQLSTATE:HY000
エラー原因:限定名のプレフィックスが、閉じた範囲外のサブプログラムまたはカーソルです。つまり、サブプログラムまたはカーソル名が範囲限定子として使用され、範囲内にないエンティティ(そのサブプログラムまたはカーソル内で)を参照しています。例:
declare x number; type t1 is record (a number); function f return t1 is a number; begin x := f.a;:関数 "f" を範囲限定子としての有効な使用
x := f().a;で関数内の局所変数 "a" を解決するレコードを返す側のコンポーネント "a" への有効な参照;
関数 "f" を範囲限定子としての無効な使用
x :=f().a;、レコードを返す側のコンポーネント "a" への有効な参照
解決策:
非閉じた関数の局所変数を参照する意図である場合、これは許可されていないため、参照を削除します。
これがパラメータなし関数であり、その関数の呼び出し結果のフィールドにアクセスすることが目的である場合、呼び出し時に空の括弧を使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00227:subprogram 'in' formal %.*s is not yet denotable
OceanBase エラーコード:9598
SQLSTATE:HY000
エラー原因:サブプログラムの形式パラメータが宣言される際、あるパラメータが別のパラメータの初期化に使用される場合があります。例:
PROCEDURE my_proc (j NUMBER, k NUMBER := j) IS ...。最初のパラメータには実行時まで値が設定されないため、別のパラメータの初期化に使用することはできません。解決策:無効な形式パラメータ参照を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00230:OUT and IN OUT formal parameters may not have default expressions
OceanBase エラーコード:9599
SQLSTATE:HY000
エラー原因:プロシージャの形式パラメータを宣言する際、
OUTまたはIN-OUTパラメータがデフォルト値で初期化されることがあります。例:PROCEDURE calc_bonus (bonus OUT REAL := 0, ...) IS ...。しかし、デフォルト値で初期化できるのはINパラメータのみです。解決策:無効なデフォルト式を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00231:function '%.*s' may not be used in SQL
OceanBase エラーコード:9668
SQLSTATE:HY000
エラーの原因:SQL ステートメントで禁止された関数が使用されています。
SQLCODEやSQLERRMのような一部の関数は、プロシージャステートメント内でのみ使用できます。解決策:SQL ステートメントから関数呼び出しを削除します。または、関数呼び出しをローカル変数に置き換えます。例えば、次のステートメントは無効です:
INSERT INTO errors VALUES(SQLCODE,SQLERRM);しかし、SQLCODEとSQLERRMの値をローカル変数に代入し、SQL ステートメント内でその変数を使用することができます。例:err_num:=SQLCODE;err_msg:=SQLERRM;エラー値(err_num、err_msg)を挿入します。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00254:OUT and IN/OUT modes cannot
be used in this context
OceanBase エラーコード:9502
SQLSTATE:HY000
エラーの原因:
USING句で実際のパラメータモード(OUTまたはIN/OUT)が正しく指定されていません。OPENステートメント内のUSING句では、INモードのみが許可されています。解決策:
USING句内のパラメータモードを正しいモードに変更します。
PLS-00263:mismatch between string on a subprogram specification and body
OceanBase エラーコード:9602
SQLSTATE:HY000
エラーの原因:パッケージ仕様に対応する条項がない項目について、パッケージ本文中に
ACCESSIBLE BY句を指定しています。パッケージ本体では、外部からアクセス可能なサブプログラムにのみこの句を指定でき、サブプログラムの仕様と本体は対応する句を持たなければなりません。パッケージのローカルやネストされたサブプログラムにはこの句を指定できません。解決策:サブプログラム本体の条項を修正し、仕様に合わせます。これは、外部プログラム用に 300 個の PH2 エラーが予約されるまで続けます。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00301:Invalid GOTO to non-label '%.*s'
OceanBase エラーコード:9667
SQLSTATE:HY000
エラーの原因:
GOTOステートメントがラベルではない内容(例:変数)へジャンプしています。解決策:有効なラベル名を指定します。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00302:component '%.*s' must be declared
OceanBase エラーコード:9681
SQLSTATE:HY000
エラーの原因:コンポーネントへの参照(例:名前 "a.B" では、"B" は "a" のコンポーネント)において、そのコンポーネントがまだ宣言されていません。コンポーネントのスペルミス、宣言の誤り、または宣言がブロック構造内で誤って配置されている可能性があります。
解決策:コンポーネントのスペルと宣言を確認します。また、宣言がブロック構造内に正しく配置されているかも確認してください。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00304:cannot compile body of
'%.*s' without its specification
OceanBase エラーコード:9520
SQLSTATE:HY000
エラーの原因:コンパイラパッケージ本体をコンパイルするために必要なコンパイラパッケージ仕様が見つかりません。考えられる原因は以下の通りです:
ソフトウェアパッケージ名のスペルミス。
ソフトウェアパッケージ仕様を一度もコンパイルしていない。
コンパイル済みのパッケージ仕様にアクセスできない。パッケージ仕様は、ソフトウェアパッケージ本体をコンパイルする前にコンパイルする必要があり、コンパイラはコンパイル済みの仕様にアクセスできる権限を持っている必要があります。
解決策:
ソフトウェアパッケージ名のスペルを確認します。
コンパイラパッケージ本体をコンパイルする前に、まずパッケージ仕様をコンパイルしてください。
コンパイラがコンパイル済みの仕様にアクセスできることを確認してください。
PLS-00305:previous use of '%.*s'
conflicts with this use
OceanBase エラーコード:9529
SQLSTATE:HY000
エラー原因:カーソル、プロシージャ、関数、またはパッケージのプリデクラレーションを検索する際、コンパイラが同一スコープ内で同名の別のオブジェクトを見つけた場合。または、パッケージのサブプログラムのヘッダー部と本体部の名前が一致しない場合。
解決策:
カーソル、プロシージャ、関数のスペルおよびパッケージ名を確認します。
同一スコープ内で宣言されているすべての定数、変数、パラメータ、例外の名前を確認します。
重複する名前を持つオブジェクトを削除または名前を変更します。
サブプログラムのヘッダー部の名前を修正し、本体部の名前と一致させます。
PLS-00306:wrong number or types of arguments in call to '%.*s'
OceanBase エラーコード:9542
SQLSTATE:HY000
エラー原因:サブプログラムの呼び出しがそのサブプログラム名のいずれの宣言とも一致しない場合にこのエラーコードが返されます。以下のような状況が考えられます:
サブプログラム名のスペルミスがある可能性があります。
パラメータのデータ型が誤っている可能性があります。
宣言が誤っているか、ブロック構造内で誤って配置されている可能性があります。例えば、スペルミスのある名前やデータ型の誤ったパラメータで組み込みの平方根関数
SQRTを呼び出す場合です。
解決策:
サブプログラム名のスペルと宣言を確認します。
呼び出しが正しいことを確認します。
パラメータが正しいデータ型であることを確認します。
組み込み関数でない場合は、宣言をブロック構造内に正しく配置します。
PLS-00307:too many declarations of '%.*s' match this call
OceanBase エラーコード:9544
SQLSTATE:HY000
エラー原因:サブプログラムまたはカーソル名の宣言が曖昧であり、パラメータデータ型の暗黙的変換を使用する際に宣言と呼び出しの間で完全な一致がなく、複数の宣言が呼び出しと一致するために発生します。以下の原因が考えられます:
サブプログラムまたはカーソル名のスペルミスがある可能性があります。
宣言が誤っている可能性があります。
宣言がブロック構造内に正しく配置されていない可能性があります。
解決策:
サブプログラムまたはカーソル名のスペルと宣言を確認します。
呼び出しが正しいことを確認します。
パラメータが正しいデータ型であることを確認します。
組み込み関数でない場合は、宣言をブロック構造内に正しく配置します。
PLS-00310:with %%ROWTYPE attribute, '%.*s' must name a table, cursor or cursor-variable
OceanBase エラーコード:9586
SQLSTATE:HY000
エラー原因:
%ROWTYPE属性は、カーソル、カーソル変数、またはデータベーステーブルとして宣言された識別子に適用する必要があります。%ROWTYPEがまだ宣言されていない識別子の後に続く場合、このエラーが発生します。解決策:宣言を変更するか、識別子に
%ROWTYPE属性を適用しないでください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00312:a positional parameter association may not follow a named association
OceanBase エラーコード:9653
SQLSTATE:HY000
エラー原因:サブプログラムやカーソルにパラメータリストを渡す際、位置関連付けと名前関連付けの両方を同時に使用すると、すべての位置関連付けは、任意の順序であっても、宣言された順序で名前関連付けの前に配置する必要があります。
解決策:要件を満たすようにパラメータリストの順序を調整するか、名前関連付けのみを使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00315:Implementation restriction: unsupported table index type
OceanBase エラーコード:9610
SQLSTATE:HY000
エラーの原因:PL/SQL テーブル宣言の
INDEX BY句で、BINARY_INTEGER、PLS_INTEGER、または VARCHAR2 以外のデータ型が指定されています。PL/SQL テーブルは、1列と1つの主キーを持つことができます。列は任意のスカラータイプを取ることができますが、主キーはバイナリ整数型または VARCHAR2 でなければなりません。解決策:
INDEX BY句でサポートされているキータイプのいずれかを使用します。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00316:PL/SQL TABLEs must use a single index
OceanBase エラーコード:9631
SQLSTATE:HY000
エラーの原因:PL/SQL テーブル宣言の
INDEX BY句で、複合主キーが指定されています。PL/SQL テーブルは、バイナリ整数または VARCHAR2 型の単純な名前なし主キーを持たなければなりません。解決策:
INDEX BY句でサポートされているキータイプのいずれかを使用します。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00318:type '%.*s' is malformed because it is a non-REF mutually recursive
type
OceanBase エラーコード:9539
SQLSTATE:HY000
エラーの原因:型宣言の形式が誤っています。宣言に相互に再帰する非 REF 関係が含まれているためです。以下の場合が考えられます:
再帰的自己参照を含む場合
相互に再帰的な参照を含む場合
解決策:宣言で他の型を使用して再帰を回避します。
PLS-00320:the declaration of the type of this expression is incomplete or malformed
OceanBase エラーコード:9597
SQLSTATE:HY000
エラーの原因:宣言内で変数またはカーソルの名前が誤って綴られているか、宣言に前方参照が含まれています。PL/SQL では前方参照は許可されていません。変数やカーソルは、他の文(宣言文を含む)で参照する前に、まず宣言する必要があります。例えば、
dept_recの宣言は、まだ宣言されていないカーソルdept_curを参照しているため、この例外を引き起こします。例:DECLARE dept_rec dept_cur%ROWTYPE; CURSOR dept_cur IS SELECT ...解決策:宣言内のすべての識別子の綴りを確認します。必要に応じて、宣言の位置を移動して前方参照を解消します。
PLS-00321:expression '%.*s' is
inappropriate as the left hand side of an assignment statement
OceanBase エラーコード:9513
SQLSTATE:HY000
エラーの原因:この式は代入文の左辺に現れることはできません。例えば、関数
SYSDATEは代入文の左辺に現れることはできません。例:SYSDATE:= '01 -JAN-1990';。解決策:誤った代入文を修正します。
PLS-00322:declaration of a constant '%.*s' must contain an initialization assignment
OceanBase エラーコード:9515
SQLSTATE:HY000
エラーの原因:定数宣言に初期値が欠けています。
解決策:定数を正しく宣言します。
PLS-00323:subprogram or cursor '%.*s' is declared in a package specification and must be defined in the package body
OceanBase エラーコード:9585
SQLSTATE:HY000
エラーの原因:パッケージヘッダーで宣言されたカーソルやサブプログラムは、パッケージボディで定義する必要があります。
解決策:サブプログラム名の綴りを確認します。必要に応じて、欠けているサブプログラム本体をパッケージボディに追加します。
PLS-00325:non-integral numeric literal %.*s is inappropriate in this context
OceanBase エラーコード:9605、9670
SQLSTATE:HY000
エラーの原因:整数を必要とする文脈で非整数の数値テキストが使用されています。
解決策:不適切なテキストを整数テキストに置き換えます。
PLS-00328:A subprogram body must be defined for the forward declaration of %.*s
OceanBase エラーコード:9587
SQLSTATE:HY000
エラーの原因:サブプログラムの仕様は宣言されていますが、対応するサブプログラム本体が定義されていません。サブプログラムの仕様と本体は一つのユニットとして記述します。別の解決策として、仕様と本体を分離することもできます。これは、相互に再帰するサブプログラムを定義したり、サブプログラムをパッケージにグループ化したりする場合に必要です。
解決策:サブプログラム名のスペルを確認します。必要に応じて、欠けているサブプログラム本体を提供します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00329:schema-level type has illegal reference to %.*s
OceanBase エラーコード:9609
SQLSTATE:HY000
エラーの原因:スキーマレベルの型から、スキーマレベルの型以外の他の型への参照があります。
解決策:不正な参照を置き換えて、操作を再試行します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00357:Table,View Or Sequence reference '%s%s%s%s%s' not allowed in this context
OceanBase エラーコード:9680
SQLSTATE:HY000
エラーの原因:不適切な文脈でデータベースのテーブル、ビュー、またはシーケンスへの参照が見つかりました。このような参照は、SQL文内、または(シーケンスを除く)
%TYPEおよび%ROWTYPE宣言内でのみ使用できます。有効な例:SELECT ename, emp.deptno, dname INTO my_ename, my_deptno, my_dept .FROM emp, dept WHERE emp.deptno = dept.deptno; DECLARE last_name emp.ename %TYPE; dept_rec dept%ROWTYPE;。解決策:不正な参照を削除または再配置します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00360:cursor declaration without body needs return type
OceanBase エラーコード:9595
SQLSTATE:HY000
エラーの原因:カーソル宣言に本体(
SELECT文)または戻り値の型が欠けています。カーソルの仕様と本体を分離する場合は、戻り値の型を指定する必要があります。例:CURSOR c1 RETURN emp%ROWTYPE;。解決策:カーソル宣言に
SELECT文または戻り値の型を追加します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00361:IN cursor '%.*s' cannot be OPEN'ed
OceanBase エラーコード:9594
SQLSTATE:HY000
エラーの原因:モードを変更できないため、カーソルパラメータを開くことができません。
解決策:カーソルパラメータを
IN-OUTまたはOUTに変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00362:invalid cursor return type; '%.*s' must be a record type
OceanBase エラーコード:9593
SQLSTATE:HY000
エラーの原因:カーソル仕様またはREFカーソルタイプの定義において、レコード型以外(例:NUMBERまたはTABLE)が戻り値の型として指定されています。これは許可されません。以下の戻り値のみが許可されます:
<record_type_name><record_name>%type<table_name>%ROWTYPE<cursor_name>%ROWTYPE<cursor_variable_name>%ROWTYTPE。解決策:カーソル仕様またはREFカーソルタイプの定義を変更し、上記の戻り値の型のいずれかを指定します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00363:expression '%.*s' cannot be used as an assignment
OceanBase エラーコード:9550
SQLSTATE:HY000
エラーの原因:ステートメント内で、文字、定数、
INパラメータ、LOOP内のcounter変数、または関数呼び出しが誤って使用されています。解決策:ステートメントの式を修正します。
PLS-00366:subtype of a not null type must also be not null
OceanBase エラーコード:9684
SQLSTATE:HY000
エラーの原因:サブタイプを
NOT NULLと定義した後、それを別のNULLと定義されたサブタイプの基底型として使用することは許可されません。例:DECLARE SUBTYPE Weekday IS INTEGER NOT NULL; SUBTYPE Weekend IS Weekday;。解決策:サブタイプ定義を変更して競合を解消します。
PLS-00367:a RAISE statement with no exception name must be inside an exception handler
OceanBase エラーコード:9592
SQLSTATE:HY000
エラーの原因:例外ハンドラーの外部で、例外名なしのRAISEステートメントが見つかりました。
解決策:RAISEステートメントを削除し、例外ハンドラー内に再配置するか、欠けている例外名を指定します。
説明
このエラーコードはV3.2.4バージョンから導入されました。
PLS-00369:no choices may appear with choice OTHERS in an exception handler
OceanBase エラーコード:9596
SQLSTATE:HY000
エラーの原因:例外ハンドラーの定義で
WHEN excep1 OR OTHERS形式の構文が見つかりました。OTHERSハンドラーは、ブロック内で最後の例外ハンドラーとして単独で存在する必要があります。解決策:他の識別子と共に現れる識別子を削除するか、その識別子に対して個別の例外ハンドラーを作成します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00370:OTHERS handler must be last among the exception handlers of a block
OceanBase エラーコード:9591
SQLSTATE:HY000
エラーの原因:1つ以上の例外ハンドラーが他のハンドラーの後に記述されています。
OTHERSハンドラーは、ブロックまたはサブプログラム内で最後のハンドラーである必要があります。これは、具体的に命名されていないすべての例外を処理するハンドラーとして機能するためです。解決策:
OTHERSハンドラーを移動し、すべての特定の例外ハンドラーの後に配置します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00371:at most one declaration for
'%.*s' is permitted
OceanBase エラーコード:9507
SQLSTATE:HY000
エラー原因:変数に対する参照があいまいです。その変数には複数の宣言があります。ブロック、プロシージャ、または関数の宣言部では、指定された識別子を持つローカル変数は最大1つしか許可されません。指定された変数は、最大1つのブロック内にのみ現れることができます。
解決策:変数のスペルを確認してください。必要に応じて、変数のすべての宣言を削除し、1つだけを保持します。
PLS-00372:In a procedure, RETURN statement cannot contain an expression
OceanBase エラーコード:5583
SQLSTATE:42000
エラー原因:プロシージャ内の
RETURN文には、式を含めることができません。解決策:
RETURN文から式を削除するか、プロシージャを関数として再定義します。
PLS-00373:EXIT/CONTINUE label '%.*s'
must label a LOOP statement
OceanBase エラーコード:9512
SQLSTATE:HY000
エラー原因:
EXITまたはCONTINUE文のラベルがLOOP文を参照していません。EXITまたはCONTINUE文はラベルを指定しなくても構いませんが、ラベルを指定した場合(例えばEXIT my_labelまたはCONTINUE my_labelのラベル)、そのラベルはLOOP文を参照している必要があります。解決策:ラベル名のスペルが正しいことを確認し、
LOOP文を参照していることを確認してください。
PLS-00375:illegal GOTO statement; this GOTO cannot branch to label '%.*s'
OceanBase エラーコード:9505
SQLSTATE:HY000
エラー原因:
GOTO文の分岐は、文列を含む構造(例えば、ループや例外ハンドラー)の外部から、その文列内のラベルへと向かうものです。このような分岐は許可されていません。解決策:
GOTO文を文列の内部に移動するか、ラベル付きの文を文列の外部に移動します。
PLS-00376:illegal EXIT/CONTINUE
statement; it must appear inside a loop
OceanBase エラーコード:9510
SQLSTATE:HY000
エラー原因:ループ構造の外部で
EXITまたはCONTINUE文が見つかりました。EXIT文はループから早期に終了させ、CONTINUE文はループの次の反復を開始します。これら2つの文は常にループ内に存在する必要があります。解決策:
EXITまたはCONTINUE文を削除するか、ループ構造内に配置します。
PLS-00382:expression is of wrong type
OceanBase エラーコード:9519
SQLSTATE:HY000
エラー原因:式のデータ型が間違っています。
解決策:式のデータ型を変更します。データ型変換機能を使用する必要がある場合があります。
PLS-00386:type mismatch found at '%.*s' between FETCH cursor and INTO variables
OceanBase エラーコード:9590
SQLSTATE:HY000
エラー原因:
FETCH文のINTOリスト内の代入先と、カーソル宣言のSELECTリスト内の対応する列のデータ型が一致せず、この不一致を解消するためにどのような暗黙の型変換が必要かが不明です。解決策:カーソル宣言を変更するか、代入先のデータ型を変更します。カーソルに関連付けられたクエリの
SELECTリストでデータ型変換関数を使用することを検討するかもしれません。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00394:wrong number of values in the INTO list of a FETCH statement
OceanBase エラーコード:9660
SQLSTATE:HY000
エラーの原因:
FETCHステートメントのINTO句における変数の数とカーソル宣言における列の数が一致しません。解決策:
INTO句の変数数またはカーソル宣言の列数を変更し、両者を一致させます。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00402:alias required in SELECT list of cursor to avoid duplicate column names
OceanBase エラーコード:9588
SQLSTATE:HY000
エラーの原因:カーソルは、重複する列名を含む
SELECTステートメントで宣言されています。解決策:"SELECT" リスト内の重複する列名をエイリアスに置き換えます。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00403:expression '%.*s' cannot be used as an INTO-target of a SELECT/FETCH statement
OceanBase エラーコード:9665
SQLSTATE:HY000
エラーの原因:
FETCHステートメントは、INTOリストを代入先に割り当てることができません。代入先が有効に定義・宣言された変数ではないためです。例:以下の代入は、'Jones'が文字列であり変数ではないため無効です:FETCH my_cur INTO 'Jones'。解決策:代入先のスペルと宣言を確認します。変数名の規則に従っていることを確認してください。
PLS-00404:cursor '%.*s' must be declared with FOR UPDATE to use with CURRENT OF
OceanBase エラーコード:9693
SQLSTATE:HY000
エラーの原因:
CURRENT OF cursor_name句内のcursor_nameは、FOR UPDATE句で宣言されていません。解決策:カーソル定義に
FOR UPDATE句を追加するか、CURRENT OF cursor_name句を使用しないでください。
説明
このエラーコードはV3.2.4バージョンから導入されました。
PLS-00410:duplicate fields in
RECORD,TABLE or argument list are not permitted
OceanBase エラーコード:9508
SQLSTATE:HY000
エラーの原因:ユーザー定義レコードを宣言する際、2つのフィールドが同じ名前を持っています。データベーステーブルの列名と同様に、ユーザー定義のフィールド名も一意である必要があります。
解決策:フィールド名のスペルを確認し、重複する名前を削除します。
PLS-00413:identifier in CURRENT OF clause is not a cursor name
OceanBase エラーコード:9692
SQLSTATE:HY000
エラーの原因:
CURRENT OF句内の識別子は、カーソルではなくオブジェクトに名付けられています。解決策:識別子のスペルを確認します。その識別子が
DELETEまたはUPDATEステートメント内でカーソルとして名付けられており、FORループ変数ではなくカーソル自体を指していることを確認してください。
説明
このエラーコードはV3.2.4バージョンから導入されました。
PLS-00428:an INTO clause is expected in this SELECT statement
OceanBase エラーコード:9618
SQLSTATE:HY000
エラー原因:
SELECT INTOステートメントのINTO句が省略されています。例えば、コードがSELECT deptno, dname, loc FROM dept WHERE ...のようになっている場合、正しい書き方はSELECT deptno, dname, loc INTO dept_rec FROM dept WHERE ...です。PL/SQLでは、サブクエリにINTO句はありません。解決策:
required INTO句を追加します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00430:FORALL iteration variable %.*s is not allowed in this context
OceanBase エラーコード:9612
SQLSTATE:HY000
エラー原因:
FORALL反復変数は添字としてのみ使用できます。直接使用したり、式の一部として使用したりすることはできません。解決策:
FORALL変数を集合の添字としてのみ使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00432:implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements
OceanBase エラーコード:9614
SQLSTATE:HY000
エラー原因:
SELECTステートメントにFORALLとBULK COLLECT INTOの両方の句が含まれています。解決策:
SELECTステートメントではFORALLとBULK COLLECT INTOの両方の句を同時に使用できません。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00435:DML statement without BULK In-BIND cannot be used inside FORALL
OceanBase エラーコード:9615
SQLSTATE:HY000
エラー原因:
FORALLステートメント内のDML(SELECT/INSERT/DELETE/UPDATE)ステートメントにBULK IN-BIND変数が含まれていません。解決策:
FORALLステートメント内のDML(SELECT/INSERT/DELETE/UPDATE)ステートメントにはBULK IN-BIND変数を含める必要があります。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00438:value in LIMIT clause
\'%.*s\' use is invalid
OceanBase エラーコード:9518
SQLSTATE:HY000
エラー原因:
FETCH INTOの後のLIMIT句の数値型が間違っています。例えば、次のステートメントは無効です。LIMIT句には数値が必要だからです。FETCH c1 BULK COLLECT INTO var_tab LIMIT 'aaaaa';。解決策:
LIMIT句の式を修正し、数値を指定します。例:FETCH c1 BULK COLLECT INTO var_tab LIMIT '22333';。
PLS-00439:BULK FETCH内でLIMIT句を使用する必要があります
OceanBaseエラーコード:9636
SQLSTATE:HY000
エラーの原因:非バルク取得で
LIMIT句を使用しています。解決策:非バルク抽出を使用する場合は、
LIMIT句を使用しないでください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00441:EXIT/CONTINUE文にはラベルが必要です。'%.*s'はラベルではありません
OceanBaseエラーコード:9654
SQLSTATE:HY000
エラーの原因:指定された名前がラベルではありません。
EXITまたはCONTINUE文にはラベルが不要ですが、オプションの名前が存在する場合は、それがラベルである必要があります。解決策:名前のスペルを確認してください。名前がネストされた
EXITまたはCONTINUE文のループのラベルであることを確認してください。この文にラベルが不要な場合は、名前を削除してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00452:サブプログラム '%.*s' は関連するpragmaに違反しています
OceanBaseエラーコード:9619
SQLSTATE:HY000
エラーの原因:パッケージ仕様で
RESTRICT_REFERENCESpragmaをコード化して純度レベルを宣言しない限り、SQL文からパッケージ化関数を呼び出すことはできません。このpragmaは副作用を制御し、PL/SQLコンパイラに対して、パッケージ化関数によるデータベーステーブル、公開パッケージ変数、またはその両方への読み書きアクセスを拒否するよう指示します。pragmaに違反するSQL文はコンパイルエラーを引き起こします。解決策:関数の純度レベルを上げるか、pragmaの制限を緩和してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00455:cursor '%.*s' は動的SQL OPEN文で使用できません
OceanBaseエラーコード:9686
SQLSTATE:HY000
エラーの原因:戻り値タイプを持つREFカーソルを動的に開こうとしています。しかし、
embeded動的OPEN文で開けるのは、戻り値タイプのないREFカーソルだけです。解決策:戻り値タイプのないREFカーソルを定義し、文で使用してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00457:expressionはSQL型である必要があります
OceanBaseエラーコード:9620
SQLSTATE:HY000
エラーの原因:
USINGまたはdynamic RETURNING句に誤った型のexpressionが含まれています。USINGまたはdynamic RETURNING句では、expressionはSQL型でなければなりません。例えば、ブール値、インデックステーブル、レコードなどはSQL型ではありません。解決策:expressionの型をSQL型に変更してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00485:例外ハンドラー内で、'%.*s' は例外名でなければなりません
OceanBaseエラーコード:5545
SQLSTATE:42000
エラーの原因:例外として宣言されていない識別子が例外ハンドラーの
WHEN句に現れています。また、WHEN句では例外名のみが有効です。解決策:例外名のスペルを確認し、正しく例外を宣言していることを確認してください。
PLS-00488:'%.*s' must be a type
OceanBase エラーコード:9543
SQLSTATE:HY000
エラーの原因:宣言または式において、データ型指定子が有効な型を指定していません。以下のような場合が考えられます:
%TYPE属性を宣言に追加していない可能性があります。例:DECLARE my_sal emp.sal%TYPE;my_ename emp.ename;では、%TYPEが宣言されていません。定数または変数を宣言する際、列のデータ型を自動的に指定するには、
%TYPE属性を使用できます。レコードを宣言する際、行のデータ型を自動的に指定するには、
%ROWTYPE属性を使用できます。
解決策:データ型指定子が有効な型を指定していることを確認してください。必要に応じて、
%TYPEおよび%ROWTYPE属性を使用してください。
PLS-00491:numeric literal required
OceanBase エラーコード:9604
SQLSTATE:HY000
エラーの原因:数値定数が必要な場所で、定数または変数が使用されています。例:
my_ename VARCHAR2(max_len); instead of my_ename VARCHAR2(15);のように、VARCHAR2変数の最大長を指定する場合は、整数リテラルを使用する必要があります。解決策:識別子を数値定数に置き換えてください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00492:variable or constant initialization may not refer to functions declared in the same package
OceanBase エラーコード:9655
SQLSTATE:HY000
エラーの原因:パッケージ
spec pで関数fを宣言した場合、その関数はどのような状況下でも、同じパッケージ仕様内で宣言された変数を参照することはできません。これは、循環インスタンス化の問題があるためです。パッケージ仕様を完全にインスタンス化するには、変数を初期化する必要があります。変数を初期化するには、パッケージ本体の関数本体コードを実行する必要があります。これには、パッケージ本体をインスタンス化する必要があります。しかし、一括計画では、パッケージ仕様が完全にインスタンス化される前に、パッケージ本体をインスタンス化することはできません。解決策:変数の初期化から関数への参照を削除してください。一般的な手法の一つは、変数の初期化を変数宣言(パッケージ仕様内)からパッケージ本体の初期化ブロックへ移動することです。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00497:cannot mix between single row and multi-row (BULK) in INTO list
OceanBase エラーコード:9639
SQLSTATE:HY000
エラーの原因:
BULK構文(例:BULK COLLECT INTO)を使用してデータを取得する場合、INTOリスト内の各変数の型は、対応する列の型の集合でなければなりません。BULK構文を使用しない場合、INTOリスト内の各変数は、対応する列と互換性のある型でなければなりません。
解決策:
INTOリストを変更し、すべての変数が正しいデータ型を持つようにしてください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00503:RETURN value statement required for this return from function
OceanBase エラーコード:9634
SQLSTATE:HY000
エラーの原因:関数体内で、式を含まない戻り値ステートメントが使用されています。プロシージャでは、
RETURNステートメントに式を含める必要はありません。なぜなら、このステートメントは単に制御権を呼び出し元に返すだけだからです。しかし、関数では、RETURNステートメントには式を含める必要があります。なぜなら、その値が関数識別子に代入されるからです。解決策:
RETURNステートメントに式を追加してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00520:MAP methods must be
(オプション)SELF以外のパラメータなしで宣言
OceanBaseエラーコード:9532
SQLSTATE:HY000
エラーの原因:
MAPメンバー関数にパラメータを宣言しました。MAPメンバー関数は、デフォルトのSELFパラメータという1つのパラメータのみを持てます。MAP関数はいかなるパラメータも宣言できず、コンパイラがSELFパラメータを追加します。解決策:
MAP関数内のパラメータを削除します。
PLS-00521:ORDER methods must be
(オプション)SELFに加えて1つのパラメータを指定して宣言
OceanBase エラーコード:9538
SQLSTATE:HY000
エラーの原因:ユーザーが指定しないパラメータを持つ
ORDER関数を宣言しました。ORDER関数には2つのパラメータがあります。1つはコンパイラが追加するデフォルトのSELFパラメータです。2つ目のパラメータはユーザーが追加し、含まれるオブジェクトの型と同じでなければなりません。解決策:パラメータタイプを変更します。
PLS-00522:MAP methods must return a
スカラータイプ
OceanBaseエラーコード:9531
SQLSTATE:HY000
エラー原因:
MAPメンバー関数を記述する際、戻り値がスカラータイプではありません。解決策:
MAP関数をオーバーライドし、スカラータイプを返すように修正します。
PLS-00523:ORDER methods must return
an INTEGER
OceanBase エラーコード:9533
SQLSTATE:HY000
エラー原因:
ORDER関数が整数型以外の型を返しました。解決策:
ORDER関数をオーバーライドし、整数型を返すように修正します。
PLS-00524:The parameter type in an
ORDERメソッドは必ずコンテナオブジェクトタイプである必要があります。
OceanBase エラーコード:9534
SQLSTATE:HY000
エラーの原因:ユーザーが指定しないパラメータを持つ
ORDER関数を宣言しました。ORDER関数には2つのパラメータがあります。1つはコンパイラが追加するデフォルトのSELFパラメータです。2番目のパラメータはユーザーが追加し、含まれるオブジェクトの型と同じでなければなりません。解決策:パラメータタイプを変更します。
PLS-00525:Within SQL statements, only
マップや順序関数なしでオブジェクトの等価性比較が可能
OceanBase エラーコード:9535
SQLSTATE:HY000
エラーの原因:関連する比較を行うための
MAPまたはORDER関数が指定されていません。MAPまたはORDER関数が指定されていない場合、等しいかどうかの比較のみを使用できます。解決策:オブジェクトの
MAPまたはORDER関数を提供するか、プログラムを等価比較のみを使用するように変更します。
PLS-00526:PL/でオブジェクトを比較するには、MAPまたはORDER関数が必要です
SQL
OceanBase エラーコード:9524
SQLSTATE:HY000
エラーの原因:PLコード内で、オブジェクトの比較に
MAPまたはORDER関数が定義されていません。解決策:
MAPまたはORDER関数を定義し、操作を再試行します。
PLS-00527:MAPまたはORDER関数
:WNDS,WNPS,RNPS,RNDSを指定するPRAGMA RESTRICT_REFERENCESが必要です。
OceanBase エラーコード:9536
SQLSTATE:HY000
エラーの原因:
pragma restrict_referencesが指定されていません。pragma restrict_referencesが指定されているが、pragma restrict_referencesに以下のパラメータのいずれかが欠けています:WNDS、WNPS、RNPSまたはRNDS。
解決策:
pragmaを追加または修正し、その後操作を再試行します。
PLS-00528:The parameters to an ORDER
function must have IN mode
OceanBase エラーコード:9537
SQLSTATE:HY000
エラー原因:
ORDER関数のパラメータをOUTまたはIN OUTモードで宣言しました。解決策:パラメータ宣言を
INモードに修正します。
PLS-00530:Illegal type used for object type attribute: '%.*s'
OceanBase エラーコード:9651
SQLSTATE:HY000
エラー原因:オブジェクト型属性に無効な型を使用しました。
解決策:オブジェクト型属性にはサポートされている型のみを使用してください。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00531:Unsupported type in a VARRAY or TABLE type: '%.*s'
OceanBase エラーコード:9652
SQLSTATE:HY000
エラー原因:
VARRAYまたはTABLE typeでサポートされていない型を使用しようとしました。解決策:
VARRAYまたはTABLE typeにはサポートされている型のみを使用してください。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00537:A VARRAY must have a positive limit
OceanBase エラーコード:9611
SQLSTATE:HY000
エラー原因:VARRAY 型を非正の制限で宣言しました。例:
VARRAY(0)。解決策:正の制限を持つ VARRAY 型を宣言し、操作を再試行します。
PLS-00538:subprogram or cursor '%.*s'
is declared in an object type specification and must be defined in the object type body
OceanBase エラーコード:9522
SQLSTATE:HY000
エラー原因:指定されたサブプログラムはオブジェクト型の仕様で宣言されていますが、オブジェクト型本体で定義されていません。
解決策:サブプログラムをオブジェクト型本体で定義するか、仕様から宣言を削除します。
PLS-00539:subprogram '%.*s' is
declared in an object type body and must be defined in the object type specification
OceanBase エラーコード:9521
SQLSTATE:HY000
エラー原因:指定されたサブプログラムはオブジェクト型の本体で宣言されていますが、オブジェクト型の仕様で定義されていません。カーソル本体は定義しなくても構いません。
解決策:サブプログラムをオブジェクト型の仕様で定義するか、本体から宣言を削除します。
PLS-00551:character set ANY_CS is only allowed on a subprogram parameter
OceanBase エラーコード:9608
SQLSTATE:HY000
エラー原因:文字セット
ANY_CSは許可されていない場合に指定されました。解決策:文字セットの仕様を変更または削除します。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00566:type name '%.*s' cannot be constrained
OceanBase エラーコード:9607
SQLSTATE:HY000
エラー原因:lob、date、boolean、rowid、または mlslabel 型は長さの制約を受けます。例:
X BLOB(5);。解決策:制約を削除します。
説明
このエラーコードは V4.0.0 から導入されました。
PLS-00567:cannot pass NULL to a NOT NULL constrained formal parameter
OceanBase エラーコード:9673
SQLSTATE:HY000
エラー原因:
NULLをNOT NULL制約のある形式パラメータに渡す。解決策:非NULL式を渡します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00572:improper constraint form used
OceanBase エラーコード:9606
SQLSTATE:HY000
エラー原因:"number"型に範囲を指定することはできません。ユーザー定義の集約型や整数型には、比率や精度を指定できません。例えば、
'x number(5,3)" は許容されますが、'x number range 1..10" は許可されません。解決策:制約を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00586:a static method cannot declare a parameter named SELF
OceanBase エラーコード:9649
SQLSTATE:HY000
エラー原因:静的メソッドを宣言する際に、パラメータ名を
SELFとしています。SELFはメソッド内でパラメータ名として保持され、そのメソッドを適用するオブジェクトインスタンスを格納するために使用されます。静的メソッドではSELFという名前のパラメータを使用することはできません。これは、静的メソッドが特定のオブジェクトインスタンスに適用されないためです。解決策:宣言内のパラメータ名を変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00587:a static method cannot be
invoked on an instance value
OceanBase エラーコード:9527
SQLSTATE:HY000
エラー原因:メソッド呼び出し名の限定子としてオブジェクトインスタンス値を使用しようとしましたが、静的メソッドを呼び出す際には型名のみを限定子として使用できます。
解決策:メソッドが静的な場合は、型名を使用してメソッド名を限定します。
PLS-00589:no attributes found in object type '%.*s'
OceanBase エラーコード:9650
SQLSTATE:HY000
エラー原因:非ADT型のテーブルを定義しました。
解決策:型のテーブルはADT型のみである必要があります。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00593:default value of parameter '%.*s' in body must match that of spec
OceanBase エラーコード:9630
SQLSTATE:HY000
エラー原因:パッケージ本体に含まれるサブプログラム本体のパラメータのデフォルト値の初期化が、対応するパッケージ仕様の該当するサブプログラム仕様のデフォルト値の初期化と一致しません。
解決策:パッケージ本体のパラメータのデフォルト初期化を
specの初期化と一致させて変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00597:expression '%.*s' in the INTO list is of wrong type
OceanBase エラーコード:9637
SQLSTATE:HY000
エラー原因:以下のエラーが発生した場合にこの例外がスローされます:
OPENまたはRETURNINGステートメントのINTO句内の式が、有効なSQLデータ型でもPL/SQLレコードデータ型でもありません。OPENまたはRETURNINGステートメントのINTO句でレコードセットが使用されています。レコードまたはレコードセットが
BULK COLLECT INTOに使用されています。
解決策:
INTO句でデータ型が正しい式を使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00594:the SELF parameter can be declared only as IN or as IN OUT
OceanBase エラーコード:9530
SQLSTATE:HY000
エラー原因:
SELFパラメータがOUTパラメータとして宣言されています。解決策:
SELFパラメータをINまたはIN OUTパラメータとして宣言します。
PLS-00617:at least one result in the CASE expression must not be NULL
OceanBase エラーコード:9666
SQLSTATE:HY000
エラー原因:
CASE式内のすべての結果が文字列NULLです。解決策:
CASE式内の少なくとも1つの結果をNULL以外に変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00619:the first operand in the NULLIF expression must not be NULL
OceanBase エラーコード:9647
SQLSTATE:HY000
エラー原因:
NULLIF式の最初のオペランドが文字列NULLです。解決策:
NULLIF式の最初のオペランドをnon-NULLに変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00621:at least one operand in the COALESCE expression must not be NULL
OceanBase エラーコード:9648
SQLSTATE:HY000
エラー原因:結合式のすべてのオペランドが文字列
NULLです。解決策:結合式の少なくとも1つのオペランドを
non-NULLに変更します。
PLS-00629:PIPE statement cannot be used in non-pipelined functions
OceanBase エラーコード:9623
SQLSTATE:HY000
エラー原因:非パイプライン関数で
PIPEステートメントが使用されています。解決策:
PIPEステートメントはパイプライン関数内でのみ使用してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00630:pipelined functions must have a supported collection return type
OceanBase エラーコード:9601
SQLSTATE:HY000
エラーの原因:サポートされていない戻り値の型をパイプライン関数に指定しました。パイプライン関数の戻り値として以下のコレクションタイプはサポートされていません:
非コレクション。
PL/SQL テーブル。
関連配列。
PL/SQL 型のコレクション:rowid、mlslabel、long、long raw、boolean、binary_integer、pls_integer、string、urowid。
解決策:サポートされているコレクションタイプをパイプライン関数の戻り値として指定します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00633:RETURN statement in a pipelined function cannot contain an expression
OceanBase エラーコード:9635
SQLSTATE:HY000
エラーの原因:パイプライン関数内の
RETURNステートメントに式が含まれています。これは許可されていません。パイプライン関数は、PIPEステートメントを使用して値を呼び出し元に返す必要があります。解決策:
RETURNステートメントから式を削除し、PIPEステートメントを使用して値を返します。そうでない場合は、関数を非パイプライン関数に変換します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00642:local collection types not allowed in SQL statements
OceanBase エラーコード:9589
SQLSTATE:HY000
エラーの原因:SQLステートメントでローカル定義(つまりスキーマレベルではない)のコレクションタイプが使用されています。このタイプはアーキテクチャで定義されていなければ、SQLステートメントで受け付けることができません。
解決策:PL/SQLサブプログラムではなく、スキーマでコレクションタイプを定義します。
PLS-00652:incorrect number of arguments for aggregate function
OceanBase エラーコード:9633
SQLSTATE:HY000
エラーの原因:
0個または999個を超えるパラメータを持つ集約関数を作成しました。解決策:パラメータが
0個または999個を超える集約関数を作成しないでください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00655:only functions can be declared as PIPELINED
OceanBase エラーコード:9600
SQLSTATE:HY000
エラーの原因:PIPELINED型はFUNCTIONでの定義のみをサポートしています。
解決策:ステートメントタイプをFUNCTIONに変更するか、PIPELINEDの使用を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00657:Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported
OceanBase エラーコード:9638
SQLSTATE:HY000
エラーの原因:バッチSQLのバインディングや定義に、関連配列型の変数や式が使用されています。
解決策:大容量SQLでサポートされているコレクションタイプを使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00658:constructor method name must match type name
OceanBase エラーコード:9528
SQLSTATE:HY000
エラーの原因:メソッド呼び出し名の限定子として型名ではなくオブジェクトインスタンスの値を使用しようとしたが、静的メソッドを呼び出す際には型名のみを限定子として使用できる。
解決策:メソッドが静的な場合は、オブジェクトインスタンスの値ではなく型名を使用してメソッド名を限定します。
PLS-00659:constructor method must return SELF AS RESULT
OceanBase エラーコード:9646
SQLSTATE:HY000
エラーの原因:コンストラクターメソッドの
return句で結果としてSELFが指定されていません。解決策:
return句をreturn SELFを結果として含むように変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00660:SELF parameter of constructor method must be IN OUT
OceanBase エラーコード:9645
SQLSTATE:HY000
エラーの原因:コンストラクターの
SELFパラメータのモードがIN OUTではありません。解決策:
SELFパラメータのモードをIN OUTに変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00661:RETURN statement in a CONSTRUCTOR cannot include an expression
OceanBase エラーコード:9541
SQLSTATE:HY000
エラーの原因:
CONSTRUCTOR主体のRETURN文に式が含まれています。解決策:
RETURN文からその式を削除します。
PLS-00667:Element type of associative array should be pls_integer or binary_integer
OceanBase エラーコード:9617
SQLSTATE:HY000
エラーの原因:要素タイプが
pls_integerまたはbinary_integer以外のインデックスコレクションを指定しました。解決策:インデックスコレクション変数の型を要素タイプが
pls_integerまたはbinary_integerの連想配列に変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00668:Type of expression should be a collection type
OceanBase エラーコード:9616
SQLSTATE:HY000
エラーの原因:型がコレクション型ではない句のインデックスまたは値の後に式を指定しました。
解決策:インデックスコレクション式の型を有効なコレクション型に変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00674:references to fields of BULK In-BIND table of records or objects must have the form A(I).F
OceanBase エラーコード:9613
SQLSTATE:HY000
エラーの原因:table(bulk_index).field はランタイムで唯一サポートされているフィールド選択です。
解決策:
FORALL DMLステートメント(MERGE/INSERT/DELETE/UPDATE)の代わりにFORループを使用するか、参照を許可された形式に修正します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00675:invalid section for this type of Compound Trigger
OceanBase エラーコード:9698
SQLSTATE:HY000
エラーの原因:複合トリガーのトリガーイベントタイプは、トリガーが基づいているオブジェクトと一致している必要があります。
解決策:複合トリガーがビューに基づいて作成されている場合、Instead of トリガーイベントのみを定義できます。テーブルに基づいて定義されている場合は、Instead of トリガーイベント以外のイベントのみを定義できます。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00676:duplicate Compound Triggers section
OceanBase エラーコード:9699
SQLSTATE:HY000
エラーの原因:各Compoundトリガー部分は、Compoundトリガー本体内で最大1回しか現れることができません。
解決策:問題のある部分を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00701:illegal ORACLE error number %.*s for PRAGMA EXCEPTION_INIT
OceanBase エラーコード:9629
SQLSTATE:HY000
エラーの原因:
EXCEPTION_INITプラグマに渡されたエラー番号が範囲を超えています。エラー番号は1-9999の範囲内(100を除く)または20000-20999の範囲内のユーザー定義エラーに使用されるエラー番号でなければなりません。解決策:有効なエラー番号を使用してください。
PLS-00702:second argument to PRAGMA EXCEPTION_INIT must be a numeric literal
OceanBase エラーコード:9676
SQLSTATE:HY000
エラーの原因:
EXCEPTION_INITプラグマに渡された2番目のパラメータが数値リテラル(例:変数)ではありません。2番目のパラメータは1-9999(100を除く)の範囲内でなければなりません。20000-20999の範囲内のエラー番号はユーザー定義エラーに使用されます。解決策:2番目のパラメータを有効なエラー番号に置き換えてください。
PLS-00708:Pragma %.*s must be declared in a package specification
OceanBase エラーコード:9603
SQLSTATE:HY000
エラーの原因:
pragmaがパッケージ仕様で要求通り宣言されていません。例えば、RESTRICT_REFERENCESはパッケージ仕様で宣言する必要があります。解決策:誤った場所に配置されたプラグマを削除または再配置します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00709:pragma %.*s must be declared in package specification and body
OceanBase エラーコード:9632
SQLSTATE:HY000
エラーの原因:名前付けられた
pragmaがパッケージ仕様で宣言されているものの、対応するパッケージ本体で宣言されておらず、その逆もまた真です。解決策:
pragmaを、パッケージ宣言にpragmaがない部分に追加します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00710:Pragma string cannot be specified here", "Pragma %s cannot be specified here
OceanBase エラーコード:9509
SQLSTATE:HY000
エラーの原因:ここでは
AUTONOMOUS_TRANSACTIONプラグマを指定できません。解決策:プログラム名のスペルが正しいか確認してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00711:PRAGMA string cannot be declared twice", "PRAGMA %.*s cannot be declared twice
OceanBase エラーコード:9621
SQLSTATE:HY000
エラーの原因:
PRAGMAが同一ブロック内で2回宣言されています。解決策:
PRAGMAの重複宣言を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00712:illegal option for subprogram %.*s
OceanBase エラーコード:9626
SQLSTATE:HY000
エラーの原因:"DETERMINISTIC"または"PARALLEL_ENABLE"オプションは、トップレベルのサブプログラム、パッケージ、またはタイプスペциフィケーション内のサブプログラム宣言でのみ有効にすることができます。例えば、パッケージやタイプの本体でこのオプションを使用しようとすると、このエラーが発生します。
解決策:そのオプションを削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00742:field %.*s is not yet denotable
OceanBase エラーコード:9669
SQLSTATE:HY000
エラーの原因:レコードのフィールドを宣言する際、あるフィールドを別のフィールドの初期化に使用しています。例:
my_rec IS record(f1 varchar2(10), f2 varchar2(10):=f1);のように入力すると、最初のフィールドには実行時まで値が設定されないため、別のフィールドの初期化に使用できません。解決策:無効なフィールド参照を削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00904:insufficient privilege to access object string
OceanBase エラーコード:9625
SQLSTATE:HY000
エラーの原因:必要な権限がない状態でデータベースオブジェクトに対する操作を試みています。例えば、
SELECT権限のみが付与されたテーブルを更新しようとしたり、データベースオブジェクトのACCESS BY句でコンパイル試行が禁止されている場合にこのエラーが発生します。解決策:DBAに操作の実行または必要な権限の付与を依頼してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00905:object '%.*s' is invalid
OceanBase エラーコード:9548
SQLSTATE:HY000
エラーの原因:無効なソフトウェアパッケージ仕様またはサブプログラムを参照しています。ソフトウェアパッケージ仕様またはサブプログラムのソースコード、またはそれが参照するデータベースオブジェクトが、前回のコンパイル以降に破棄、置き換え、または変更された場合、そのソフトウェアパッケージまたはサブプログラムは無効となります。
解決策:ソフトウェアパッケージ仕様またはサブプログラムが無効になった原因を特定し、再度正しくコンパイルできるようにします。
PLS-00990:Index Tables of Cursor Variables are disallowed
OceanBase エラーコード:9672
SQLSTATE:HY000
エラーの原因:cursorはarray型の要素としてサポートされていません。
解決策:array型の要素の型を確認し、cursor型の使用を避けます。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00994:Cursor Variables cannot be
declared as part of a package
OceanBase エラーコード:9516
SQLSTATE:HY000
エラーの原因:プログラムパッケージ仕様内でカーソル変数を宣言しようとしていますが、これは許可されていません。PLブロック、サブプログラム、またはプログラムパッケージ内では
REF CURSOR型を定義できますが、カーソル変数はブロックまたはサブプログラム内でのみ宣言できます。解決策:カーソル変数の宣言をPLブロックまたはサブプログラム内に移動します。
PLS-00999:implementation restriction (may be temporary) %s
OceanBaseエラーコード:9624
SQLSTATE:HY000
エラーの原因:
RESULT_CACHEは、OUTまたはINOUTパラメータを含むFUNCTIONをサポートしていません。
RESULT_CACHEは、RETURN型、またはINパラメータの型が以下の型を含むFUNCTIONをサポートしていません:
BLOB
CLOB
NCLOB
REFCURSOR
Collection
Object
上記の型を含むRecordまたはPL/SQL collection型
RESULT_CACHEは、匿名ブロック内のFUNCTIONをサポートしていません。
RESULT_CACHEは、PIPELINE FUNCTIONおよびNESTED FUNCTIONをサポートしていません。
解決策:上記のサポートされていないケースでRESULT_CACHEを使用しないようにします。
説明
このエラーコードはV4.0.0バージョンから導入されました。