機能の適用範囲
この内容は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関数のどちらか一方しか持てず、複数の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
エラーの原因:文字列リテラルの長さが32,767バイトを超えています。
解決策:最大32,767バイトの文字列リテラルを使用してください。
説明
このエラーコードは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は変数、列、フィールド、または属性に適用する必要があります。'%.*s' には適用できません。
OceanBase エラーコード:9547
SQLSTATE:HY000
エラーの原因:
%TYPEデータ型属性を使用して宣言されたプログラムオブジェクトは適切なタイプではありません。このタイプは、変数、列、レコードグループ属性、サブルーチンの形式パラメータ、または他の代入可能なオブジェクトである必要があります。解決策:変数宣言に初期化ステートメントを追加します。初期化の構文が複雑すぎる場合は、関数呼び出しを追加できます。
PLS-00218:NOT NULLとして宣言された変数には、初期化代入が必要です。
OceanBase エラーコード:9514
SQLSTATE:HY000
エラーの原因:通常、宣言に初期化ステートメントがない変数は、
NULLに自動的に初期化されます。これはNOT NULL変数にとって論理的ではありません。そのため、初期化ステートメントが必要です。解決策:変数宣言に初期化ステートメントを追加します。初期化の構文が複雑すぎる場合は、関数呼び出しを追加できます。
PLS-00221:%s' はプロシージャではないか、定義されていません。
OceanBase エラーコード:9683
SQLSTATE:HY000
エラーの原因:プロシージャとして参照された識別子が宣言されていないか、実際には別のオブジェクトを表しています(例えば、関数として宣言されている可能性があります)。
解決策:識別子の綴りと宣言を確認します。また、宣言がブロック構造内に正しく配置されていることも確認してください。
説明
このエラーコードはV4.0.0バージョンから導入されました。
PLS-00222:このスコープ内に名前が '%.*s' の関数は存在しません。
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パラメータ、ループ内の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ハンドラーは、ブロック内の最後の例外ハンドラーとして単独で記述する必要があります。解決策:他の識別子と共に現れる
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リストに値を代入できません。例:FETCH my_cur INTO 'Jones'は、'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 COLLET INTOの両方の句が含まれています。解決策:
SELECTステートメントでは、FORALLとBULK COLLET 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
エラーの原因:パッケージ仕様で
RESTRICT_REFERENCESプラグマを定義して純度レベルを宣言しない限り、SQLステートメントからパッケージ化関数を呼び出すことはできません。このプラグマは副作用を制御し、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が宣言されている場合、その関数はどのような状況下でも、同じパッケージ仕様内で宣言された変数を参照することはできません。これはループインスタンス化の問題によるものです。パッケージ仕様を完全にインスタンス化するには、変数を初期化する必要があります。変数を初期化するには、パッケージ本体の関数体コードが実行されていなければなりません。これには、パッケージ本体をインスタンス化する必要があります。しかし、一括計画では、パッケージ仕様が完全にインスタンス化される前に、パッケージ本体をインスタンス化することはできません。解決策:変数初期化から関数への参照を削除します。一般的な手法の1つは、変数初期化を変数宣言(パッケージ仕様内)からパッケージ本体の初期化ブロックに移動させることです。
説明
このエラーコードは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
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制約のパラメータに渡す。解決策:非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でサポートされているcollection型を使用してください。
説明
このエラーコードは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バージョンから導入されました。