Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

SQL エラー・メッセージ

以下のテーブルは、SQL の数値エラー・コードとそのエラー・メッセージの一覧です。これらのコードは、SQLCODE 変数の値として返されます。

Note:

このドキュメントでは、負の値のエラー・コードを一覧表示していますが、JDBC クライアントと ODBC クライアントでは、常に正の値を受け取ります。例えば、ODBC や JDBC のアプリケーションがエラー・コード 30 を返した場合、以下のテーブルではエラー・コード -30 を確認してください。

SQLCODE 0 と 100

この 2 つの SQLCODE は、SQL エラーを表すものではありません。

SQL エラー・コード 0 および 100
エラー・コード 説明
0 正常に処理が完了しました
100 (これ以上) データがありません
  • SQLCODE=0 は、SQL 処理が正常に終了したことを示します。SELECT 文の場合、通常、これはテーブルからのデータの取得に成功したことを意味します。ただし、SELECT集約演算 (SELECT SUM(myfield) など) を実行する場合、myfield にデータがなくても集約演算は成功し、SQLCODE=0 が発行されます。この場合、SUM は NULL を返し、%ROWCOUNT=1 となります。

  • SQLCODE=100 は、SQL 操作は成功したが処理するデータが見つからないことを意味します。これは、さまざまな理由で発生します。SELECT の場合、指定したテーブルにデータがない、テーブルにクエリの条件を満たすデータがない、行の検索がテーブルの最終行に達した、などの理由があります。UPDATE または DELETE の場合、指定したテーブルにデータがない、テーブルに WHERE 節の条件を満たすデータの行がない、などの理由があります。このような場合、%ROWCOUNT=0 となります。

SQLCODE -400

SQLCODE -400 エラー “深刻なエラーが発生しました” は、一般エラーです。より具体的な SQLCODE エラー・コードが利用可能でない場合に生成されます。

SQL メッセージ・テキストの取得

SQLCODE 数値コードの意味を確認するには、以下の ObjectScript 文を使用します。

   WRITE "SQLCODE=",$SYSTEM.SQL.SQLCODE(-nnn)

この SQLCODE()Opens in a new tab メソッドは、ODBC または JDBC からストアド・プロシージャ %SYSTEM.SQL_SQLCODE(-nnn) として呼び出すこともできます。

この場合 (通常は SQL コンパイル時)、エラー・メッセージはエラーの原因となったフィールド、テーブル、ビュー、他の要素の名前を含みます。これらの名前のプレースホルダは <name> 構文規約を使用して示されます。

%msg 変数には、特定のエラーに対する追加のメッセージ・エラー・テキストが含まれる場合があります。詳細は、"Caché SQL の使用法" の “埋め込み SQL の使用法” の章の "システム変数" を参照してください。

返されるメッセージ・テキストの英語版を以下に示します。実際のメッセージ・テキストはロケールの設定によって異なります。

SQLCODE エラーからの ObjectScript の一般的なエラーの生成の詳細は、"インターシステムズ・クラス・リファレンス" の %SYSTEM.ErrorOpens in a new tab クラスを参照してください。

SQL エラー・コードおよびメッセージのテーブル

使いやすさを考慮して、SQL エラー・コードのテーブルは以下のサブテーブルに分けられています。

SQL エラー・コード -1 から -99
エラー・コード 説明
-1 無効な SQL 文です
-2 'E' の後に指数を表す数字が見つかりません
-3 引用文を閉じる (") が見つかりません
-4 識別子、定数、集約、%ALPHAUP、%EXACT、%MVR、%SQLSTRING、%SQLUPPER、%STRING、%UPPER、$$、:、+、-、(、NOT、EXISTS、または FOR のいずれかが先頭にある単語が必要です。
-5 ORDER に指定された列番号が SELECT リストに一致しません
-6 UNION の後に SELECT 列として ORDER BY 列が見つかりません
-7 指数が範囲外です
-8 DATEPART()、DATENAME()、DATEADD()、DATEDIFF() の無効な DATEPART コードです
-9 互換性のない SELECT リストが UNION で使用されています
-10 サブクエリの SELECT リストは必ず 1 つの項目を持つ必要があります
-11 条件式ではなく、スカラ式が必要です
-12 識別子、定数、集約、$$、:、(、+、-、%ALPHAUP、%EXACT、%MVR、%SQLSTRING、%SQLUPPER、%STRING、または %UPPER のいずれかが先頭にある単語が必要です。
-13 ここではサブクエリ以外の式が必要です
-14 ここでは比較演算子が必要です
-15 NOT の後には条件が必要です
-16 for 文では、FOR の後に修飾子 SOME が必要です
-17 for 文では、( の後に for の条件が必要です
-18 IS (あるいは IS NOT) NULL 述語はフィールドにのみ適用できます
-19 集約関数は WHERE 句および GROUP BY 句の中では使用できません
-20 FROM リストのラベルで名前が重複しています
-21 ポインタ->フィールド参照は INSERT または UPDATE 文で変更できません
-22 'SELECT *' の後に続ける場合、ORDER には番号ではなく列名を指定する必要があります
-23 ラベルが該当するテーブルでリストされていません
-24 ソート列が不明確です
-25 クエリの終了後に入力が検出されました
-26 FROM 句が見つかりません
-27 フィールドが該当するテーブルで不明確です
-28 ホストの変数名は % か文字のいずれかで始まる必要があります
-29 該当するテーブルでフィールドが見つかりません
-30 テーブルまたはビューが見つかりません
-31 テーブル内にフィールドが (見つかりません/一意ではありません)
-32 外部結合記号 ( =* または *= ) が 2 つのフィールド間に必要です
-33 テーブルにフィールドが見つかりません
-34 オプティマイザが使用可能な結合順序を見つけることができませんでした
-35 INSERT/UPDATE/DELETE は更新できないビューを許可していません
-36 WITH CHECK OPTION (CHECKOPTION クラスパラメータ) は更新できないビューを許可していません
-37 SQL スカラ/集約/単項関数はストリーム・フィールドでサポートされていません
-38 テーブルにマスタ・マップがありません
-39 テーブルに RowID フィールドがありません
-40 ODBC のエスケープ拡張はサポートされていません
-41 外部関数の呼び出しは、'$$tag^routine(...)' の形式になる必要があります
-42 パターン・マッチの後ろに続く引用を閉じる ("") が見つかりません
-43 テーブルは #IMPORT スキーマ名リスト内で不明確です
-44 重複メソッドまたはクエリの指数部です
-45 ObjectScript クエリに重複メソッドがあります
-46 ObjectScript クエリ・ボディに必須メソッドがありません
-47 無効なメソッドまたはクエリの指数部です
-48 トリガイベントの無効なトリガ REFERENCING 節です
-49 トリガを起動する言語が SQL 以外の場合、トリガ REFERENCING 句を指定できません
-50 トリガを起動する言語が SQL 以外の場合、トリガは UPDATE OF <fieldlist> 節を指定します
-51 SQL 文が必要です
-52 カーソルは既に宣言されています/宣言されていません
-53 新しい値として定数または変数が必要です
-54 VALUES の後に (最後の添え字が省略された) 配列識別子が必要です
-55 無効な GRANT <role> TO または REVOKE <role> FROM です
-56 GRANT/REVOKE 動作は、このタイプのオブジェクトに対応していません
-57 トリガを起動する言語が SQL 以外の場合、トリガは WHEN 句を指定します
-58 トリガ UPDATE OF フィールド_リスト句で重複フィールドが見つかりました
-59 複数のフィールドを持つことはできません
-60 %ALTER、SELECT、UPDATE などの動作が必要です
-61 カーソルを更新できません
-62 INSERT/UPDATE に新しい値を追加する必要があります
-63 データの例外 - 無効なエスケープ文字です
-64 互換性のない SELECT リストが INSERT で使用されています
-65 正の整数の定数または変数が必要です
-66 SELECT リストに冗長なフィールドがあります
-67 暗黙結合 (矢印構文) は ON 節ではサポートされません
-68 ON 節で、従来の外部結合 (=*, *=) がサポートされなくなりました
-69 SET <field> = <value expression> を WHERE CURRENT OF <cursor> で使用できません
-70 Multi-Line フィールドは LIKE、包含 ([)、または NULL 比較でのみ有効です
-71 Multi-Line フィールドは比較の左側オペランドである必要があります
-72 Multi-Line フィールドが ORDER BY 節で無効です
-73 集約関数が ORDER BY 節でサポートされていません
-74 <select-list> の別名に重複が見つかりました
-75 TRIM 関数では FROM よりも前に <trim_spec> および/または <trim_char> が必要です
-76 SELECT リストと INTO リストの要素数が一致していません
-77 この JOIN コンテキストでは条件付きの列参照ができません
-78 無効なトランザクション状態です
-79 参照するキーと参照されるキーは、同じサイズである必要があります
-80 整数が必要です
-81 列の制約が必要です
-82 複数のテーブルの %DESCRIPTION 定義が見つかりました
-83 複数のテーブルの %FILE 定義が見つかりました
-84 複数のテーブルの %NUMROWS 定義が見つかりました
-85 複数のテーブルの %ROUTINE 定義が見つかりました
-86 無効なフィールド定義です。データ型が定義されていません。
-87 無効なテーブル名です
-88 無効なフィールド名です
-89 無効なインデックス名です
-90 無効なビュー名です
-91 トランザクション・モードは複数回指定することはできません
-92 READ WRITE が指定されている場合は level of isolation を READ UNCOMMITTED や READ VERIFIED にすることはできません
-93 DIAGNOSTICS SIZE の number of conditions は数値でなければなりません
-94 OUTER JOIN の使用はサポートされていません
-95 オペレーション・テーブルによって操作は不許可にされています
-96 指定された level of isolation はサポートされていません
-97 重複している select-list の名前が見つかりました
-98 ライセンスの違反です
-99 特権の違反です
SQL エラー・コード -101 から -399
エラー・コード 説明
-101 既に開いているカーソルを開こうとしています
-102 開いていないカーソルで (FETCH/CLOSE/UPDATE/DELETE/...) という操作を実行しようとしました
-103 UPDATE または DELETE を実行しようとしましたが、カーソルはどの行にもありません
-104 INSERT でフィールドの確認に失敗しました。または、値を DisplayToLogical あるいは OdbcToLogical で変換できませんでした
-105 UPDATE でフィールドの確認に失敗しました
-106 DELETE する行が見つかりません
-107 RowID またはフィールドに基づく RowID を UPDATE できません
-108 必要なフィールドが見つかりません。INSERT または UPDATE を実行できません
-109 UPDATE に指定された行が見つかりません
-110 ファイルのロックが重複しています
-111 "既定値のみ" の RowID またはフィールドに基づく RowID に INSERT できません
-112 アクセス違反です
-113 %THRESHOLD 違反です
-114 一致する行が既に別のユーザにロックされています
-115 読み取り専用のテーブルでは、INSERT、UPDATE、DELETE できません
-116 値リストとテーブル列数の INSERT/UPDATE が一致していません
-117 集約関数はビューでサポートされていません
-118 不明なあるいは一意でないユーザもしくはロールです
-119 UNIQUE あるいは PRIMARY KEY 制約が INSERT の一意性チェックに失敗しました
-120 UNIQUE あるいは PRIMARY KEY 制約が UPDATE の一意性チェックに失敗しました
-121 FOREIGN KEY 制約は、参照テーブルで行の INSERT の参照先チェックに失敗しました
-122 FOREIGN KEY 制約は、参照テーブルで行の UPDATE の参照先チェックに失敗しました
-123 FOREIGN KEY 制約は、参照元テーブルで行の UPDATE の参照チェックに失敗しました
-124 FOREIGN KEY 制約は、参照元テーブルで行の DELETE の参照チェックに失敗しました
-125 UNIQUE あるいは PRIMARY KEY 制約が、制約条件の生成で一意性チェックに失敗しました
-126 RESTRICT の REVOKE に失敗しました
-127 FOREIGN KEY 制約が、制約条件の生成で参照一貫性チェックに失敗しました
-128 スカラ関数 %OBJECT() への引数はストリーム・フィールドである必要があります
-129 SET OPTION のロケール・プロパティの値が不正です
-130 Before Insert トリガに失敗しました
-131 After Insert トリガに失敗しました
-132 Before Update トリガに失敗しました
-133 After Update トリガに失敗しました
-134 Before Delete トリガに失敗しました
-135 After Delete トリガに失敗しました
-136 ビューの WITH CHECK OPTION 検証が INSERT に失敗しました
-137 ビューの WITH CHECK OPTION 検証が UPDATE に失敗しました
-138 読み取り専用フィールドに値を INSERT および UPDATE できません
-139 更新時に並行処理が失敗しました。行バージョンが異なります
-140 無効な長さのパラメータが SUBSTRING 関数に渡されました
-141 無効な入力値が CONVERT 関数に渡されました
-142 View-Columun リストとビュー・クエリの SELECT 節の要素数が一致していません
-143 ORDER BY はビューのクエリに使用できません
-144 INSERT 文の SET/VALUES 節にはサブクエリを使用できません
-145 このテーブルでは、SQLPREVENTFULLSCAN クラス・パラメータは 1 です。 データ・マップのフル・スキャンを実行するクエリは許可されません
-146 入力された日付を妥当な日付論理値に変換できません
-147 入力された時刻を妥当な時刻論理値に変換できません
-148 CREATE VIEW、ALTER VIEW、またはビューのクエリにはホスト変数参照が含まれていない可能性があります
-149 SQL 関数でエラーが発生しました
-150 クラス定義の楽観的同時実行ロックに失敗しました
-151 この文で使用されているテーブル内にインデックスが見つかりません
-152 この文で使用されているテーブル内でインデックスがあいまいです
-161 SQL 接続の参照は、サブクエリ全体を構成する必要があります
-162 SQL 接続が定義されていません
-201 テーブルまたはビューの名前が一意ではありません
-220 ゲートウェイ・クエリ・エラー
-221 ゲートウェイ・クエリの GetConnection() が失敗しました
-222 ゲートウェイ・クエリの AllocStatement() が失敗しました
-223 ゲートウェイ・クエリの Prepare() が失敗しました
-225 ゲートウェイ・クエリの BindParameters() が失敗しました
-226 ゲートウェイ・クエリの Execute() が失敗しました
-227 ゲートウェイ・クエリの Fetch() が失敗しました
-228 ゲートウェイ・クエリの GetData() が失敗しました
-241 並列クエリのキュー・エラー
-242 並列クエリの実行時エラー
-300 このテーブルの定義では DDL を使用できません
-301 セーブポイント名がありません
-302 "SYS" から始まるセーブポイント名は予約されます
-303 UPDATE 割り当てでストリーム・フィールドから非ストリーム・フィールドへの暗黙の変換はありません
-304 既定値のない NOT NULL フィールドを、データを持つテーブルに追加しようとしました
-305 テーブルの行が NULL の列値を持つ場合に必要となるフィールドを作成しようとしました
-306 この名前の列が既に存在します
-307 このテーブルに既に主キーが定義されています
-308 このテーブルに既に ID 列が定義されています
-309 %CONTAINS の左のオペランドは %Text インタフェースをサポートするプロパティではありません
-310 外部キーが参照しているテーブルが存在しません
-311 このテーブルに既に同じ名前の外部キーが定義されています
-312 無効なスキーマ名です。 このスキーマ名を参照するには、区切り識別子を使用する必要があります
-313 条件式はストリーム・フィールドでサポートされていません
-314 外部キーが参照しているキー/列の集合が一意ではありません
-315 制約またはキーが見つかりません
-316 外部キーが参照しているキー/列の集合は存在しません
-317 制約を DROP できません - 1 つまたは複数の外部キー制約がこの一意の制約を参照しています
-319 参照されたテーブルは主キーが定義されていません
-320 テーブルを DROP できません - 1 つまたは複数の外部キー制約がこのテーブルを参照しています
-321 ビューを DROP できません - 1 つ以上のビューがこのビューを参照しています
-322 列を削除できません — 列はひとつかそれ以上のインデックスまたは制約で定義されています
-324 このテーブルに既にこの名前のインデックスが定義されています
-325 IDKEY インデックスでありテーブルにデータが存在するため、インデックスを切断できません
-333 インデックスが定義されていません
-334 インデックス名があいまいです。複数のテーブルでインデックスが検出されました。
-340 そのようなデータベース (ネームスペース) は定義されていません
-341 データベース・ファイルが既に存在します
-342 システム・ネームスペースを削除できません
-343 無効なデータベース名です
-344 現在使用中および接続中のデータベースをドロップできません
-350 SqlComputeCode の実行中に予期しないエラーが発生しました
-356 SQL 関数 (ストアド・プロシージャ関数) が値を返すように定義されていません
-357 SQL 関数 (ストアド・プロシージャ関数) が関数プロシージャとして定義されていません
-358 SQL 関数名 (ストアド・プロシージャ関数) が一意ではありません
-359 SQL 関数名 (ストアド・プロシージャ関数) が見つかりません
-360 クラスが見つかりません
-361 メソッドまたはクエリ名が一意ではありません
-362 メソッドまたはクエリが見つかりません
-363 トリガが見つかりません
-364 同じ EVENT、TIME、ORDER を持つトリガが既に定義されています
-365 トリガ名が一意ではありません
-366 トリガ名とテーブル名のスキーマ名が異なります
-370 ストアド・プロシージャに定義されている数より多い引数が SQL CAL で指定されています
-371 :HVar = CALL ...値を返さないプロシージャを指定しています
-372 外部関数呼び出しがサポートされていません
-373 外部関数呼び出しが % ルーチンを呼び出していません
-374 テーブルにデータが存在する場合、ストリーム・タイプから/ストリーム・タイプへのフィールド・データ型を変換できません
-375 確立されていないセーブ・ポイントを ROLLBACK できません
-376 サポートされていない CAST ターゲットが指定されました
-377 insert または update文の引数リストにフィールドが複数個あります
-378 データ型が一致しません。明示的な CAST が必要です
-380 スカラ関数に対する引数が無効か、または存在しません
-381 スカラ関数に対する引数が多すぎます
SQL エラー・コード -400 から -500
エラー・コード 説明
-400 致命的なエラーが発生しました
-401 致命的な接続エラーです
-402 無効なユーザ名/パスワードです
-405 通信デバイスから読み取りできません
-406 サーバに書き込みできません
-407 サーバ・マスタに書き込みできません
-408 サーバを起動できません
-409 無効なサーバの機能です
-410 無効なディレクトリです
-411 フィールドにストリーム・オブジェクトが定義されていません
-412 一般的なストリーム・エラーです
-413 互換性のないクライアント/サーバ・プロトコルです
-415 SQL ファイラ内で致命的なエラーが発生しました
-416 CacheInfo エラー
-417 セキュリティ・エラー
-422 ODBC、JDBC、またはダイナミック SQL 経由で処理された SELECT 要求は INTO 節を含むことはできません
-425 ストアド・プロシージャの要求処理のエラーです
-426 ストアド・プロシージャの作成エラーです
-427 無効なストアド・プロシージャ名です
-428 ストアド・プロシージャが見つかりません
-429 ストアド・プロシージャの入出力パラメータ数が正しくありません
-430 プロシージャ・コンテキストを初期化できません
-431 ストアド・プロシージャのパラメータのタイプが一致しません
-432 1 つの値のみが予想される場合に関数から複数の行が返されました
-450 ユーザのタイムアウトのため要求がタイムアウトしました
-451 サーバ・メッセージを受信できません
-452 メッセージ・シーケンス・エラーです
-453 ユーザ初期設定コードのエラーです
-454 外部中断要求の送信エラーです
-459 Kerberos 認証が失敗しました
-460 一般的なエラーです
-461 通信リンクに失敗しました
-462 メモリの割り当てに失敗しました
-463 無効な列番号です
-464 関数シーケンスのエラーです
-465 無効な文字列またはバッファの長さです
-466 無効なパラメータ番号です
-467 列タイプが適用範囲外です
-468 フェッチ・タイプが適用範囲外です
-469 ドライバが使用できません
-470 オプションの値が変更されています
-471 カーソル名が重複しています
-472 コレクション値プロパティが必要です
-478 クエリがリコンパイルされました。結果セットが一致しません。
-500 フェッチの行カウントの制限に達しました
WinSock エラー・コード -10050 から -11002
エラー・コード 説明
-10050 WinSock: ネットワークがダウンしました
-10051 WinSock: ネットワークに接続できません
-10052 WinSock: ネットが接続を切断またはリセットしました
-10054 WinSock: (タイムアウトまたは再起動により) ピアによって接続がリセットされました
-10055 WinSock: 利用できるバッファ・スペースがありません
-10056 WinSock: ソケットは既に接続されています
-10057 WinSock: ソケットは接続されていません
-10058 WinSock: ソケットの停止後は送信できません
-10060 WinSock: 接続のタイムアウトです
-10061 WinSock: 接続が拒否されました
-10064 WinSock: ホストがダウンしています
-10065 WinSock: ホストへのルートがありません
-10070 WinSock: 古い NFS ファイル・ハンドルです
-10091 WinSock: ネットワーク・サブシステムが利用できません
-10092 WinSock: WINSOCK DLL のバージョンが適用範囲外です
-10093 WinSock: WSASTARTUP がまだ正常に実行されていません
-11001 WinSock: ホストが見つかりません
-11002 WinSock: 特権のないホストが見つかりません
FeedbackOpens in a new tab