適用対象
この内容は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に渡されるパラメータのいずれかが許可された値のリストに含まれていません。引数のスペルミスがある可能性があります。または、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
エラーの原因:指定されたメソッドまたはオブジェクト型修飾子が以前の修飾子と競合します。例えば、最終修飾子は非最終修飾子と組み合わせることができません。
解決策:競合する修飾子のいずれかを削除します。
説明
このエラーコードは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 anassignment 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。解決策:カーソル仕様または参照カーソル型定義を変更し、上記の返却タイプのいずれかを指定します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00363:expression '%.*s' cannot be used as an assignment
OceanBaseエラーコード:9550
SQLSTATE:HY000
エラーの原因:ステートメント内で、文字、定数、
INパラメータ、ループ内の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 リスト内の対応する列とデータ型がマッチしておらず、この不一致を修正するためにどのような暗黙の変換が必要か不明です。解決策:カーソル宣言を変更するか、割り当て先のデータ型を変更します。カーソルに関連付けられたクエリの選択リストでデータ型変換関数を使用する必要がある場合があります。
説明
このエラーコードは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:A LIMIT clause must be used within a BULK FETCH
OceanBaseエラーコード:9636
SQLSTATE:HY000
エラーの原因:非一括取得で
LIMIT句を使用しています。解決策:非一括抽出を使用する場合は、
LIMIT句を使用しないでください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00441:EXIT/CONTINUE statement may have a label here; '%.*s' is not a label
OceanBaseエラーコード:9654
SQLSTATE:HY000
エラーの原因:指定された名前はラベルではありません。
EXITまたはCONTINUEステートメントにはラベルは不要ですが、オプションの名前がある場合は、それがラベルでなければなりません。解決策:名前の綴りを確認します。名前がネストされた
EXITまたはCONTINUEステートメントを含むループのラベルであることを確認します。このステートメントにラベルが不要な場合は、名前を削除してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00452:Subprogram '%.*s' violates its associated pragma
OceanBaseエラーコード:9619
SQLSTATE:HY000
エラーの原因:SQLステートメントからパッケージ化関数を呼び出すには、パッケージ仕様に
RESTRICT_REFERENCESプラマをコードして純度レベルを宣言する必要があります。プラマは副作用を制御するために使用され、PL/SQLコンパイラに対し、パッケージ化関数によるデータベーステーブル、共有パッケージ変数、またはその両方への読み取り/書き込みアクセスを拒否するよう指示します。プラマに違反するSQLステートメントはコンパイルエラーを引き起こします。解決策:関数の純度レベルを向上させるか、プラマの制限を緩和します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00455:cursor '%.*s' cannot be used in dynamic SQL OPEN statement
OceanBaseエラーコード:9686
SQLSTATE:HY000
エラーの原因:返り値タイプを持つREFカーソルを動的に開きます。ただし、
embeded動的OPENステートメントで開くことができるのは、返り値タイプのないREFカーソルのみです。解決策:返り値タイプのないREFカーソルを定義し、ステートメントで使用します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00457:expressions have to be of SQL types
OceanBaseエラーコード:9620
SQLSTATE:HY000
エラーの原因:
USINGまたはdynamic RETURNING句に誤ったタイプの式が存在します。USINGまたはdynamic RETURNING句では、式はブール値、インデックステーブル、レコードなどの非SQLタイプにすることはできません。解決策:式のタイプをSQLタイプに変更します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00485:in exception handler, '%.*s' must be an exception name
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ステートメントに式を含める必要があります。その値は関数識別子に割り当てられるためです。解決策:
RETURNステートメントに式を追加します。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00520:MAP methods must be
declared without any parameters other than (optional) SELF
OceanBaseエラーコード:9532
SQLSTATE:HY000
エラーの原因:
MAPメンバ関数にパラメータが宣言されています。MAPメンバ関数には、デフォルトのSELFパラメータという1つのパラメータしか許可されていません。MAP関数は、どのようなパラメータも宣言することはできず、コンパイラがSELFパラメータを追加します。解決策:
MAP関数からパラメータを削除します。
PLS-00521:ORDER methods must be
declared with 1 (one) parameter in addition to (optional) SELF
OceanBaseエラーコード:9538
SQLSTATE:HY000
エラーの原因:ユーザー指定のパラメータを持たない
ORDER関数が宣言されました。ORDER関数には2つのパラメータがあります。1つはコンパイラによって追加されるデフォルトのSELFパラメータです。2つ目のパラメータはユーザーが追加し、それは含まれるオブジェクトの型と同じでなければなりません。解決策:パラメータタイプを変更します。
PLS-00522:MAP methods must return a
scalar type
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 method must be the containing object type
OceanBaseエラーコード:9534
SQLSTATE:HY000
エラーの原因:ユーザー指定のパラメータを持たない
ORDER関数が宣言されました。ORDER関数には2つのパラメータがあります。1つはコンパイラによって追加されるデフォルトのSELFパラメータです。2つ目のパラメータはユーザーが追加し、それは含まれるオブジェクトの型と同じでなければなりません。解決策:パラメータタイプを変更します。
PLS-00525:Within SQL statements, only
equality comparisons of objects are allowed without a map or order function
OceanBaseエラーコード:9535
SQLSTATE:HY000
エラーの原因:関連する比較を行うための
MAPまたはORDER関数が提供されていません。MAPまたはORDER関数が提供されていない場合、等価比較のみを使用できます。解決策:オブジェクトの
MAPまたはORDER関数を提供するか、プログラムを等価比較のみを使用するように変更します。
PLS-00526:A MAP or ORDER function is required for comparing objects in PL/
SQL
OceanBaseエラーコード:9524
SQLSTATE:HY000
エラーの原因:PLコード内で、オブジェクトの比較に
MAPまたはORDER関数が定義されていません。解決策:
MAPまたはORDER関数を定義して、操作を再試行します。
PLS-00527:MAP or ORDER functions
require a PRAGMA RESTRICT_REFERENCES specifying :WNDS,WNPS,RNPS,RNDS
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制約付き形式パラメータに渡そうとしています。解決策:空でない式を渡します。
説明
このエラーコードは、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
コレクション
オブジェクト
上記のタイプを含むレコードまたはPL/SQLコレクションタイプ
RESULT_CACHEは匿名ブロック内のFUNCTIONをサポートしていません。
RESULT_CACHEはPIPELINE FUNCTIONとNESTED FUNCTIONをサポートしていません。
解決策:上記のサポートされないケースで使用されているRESULT_CACHEを削除します。
説明
このエラーコードはV4.0.0バージョンから導入されました。