LastUpdate: 2019/06/05 23:45:34

戻る

20080516_SQLSTATE_の一覧
 


20080516 SQLSTATE の一覧

標準SQLにおける"SQLSTATE"コードの一覧を探した。

SQLSTATE値は5文字のコードで構成される。
このコードは2つの部分に分けられ、上位2文字はクラス、下位3文字はサブクラスである

エラーコード 意味
00クラス 正常終了
00000 正常終了
01クラス 警告
01000 警告
0100C 警告:動的な結果セットが返されました。
01008 警告:暗黙的な0によるビット埋めがあります。
01003 警告:集合関数内でNULL値は省略されました。
01004 警告:文字列データの右側が除去されました。
02クラス データがありません。--- SQL99ではこれは警告クラスです。
02000 データがありません。
02001 更なる動的結果セットは返されませんでした。
03クラス SQL 文の未完了
03000 SQL 文は未完了です。
08クラス 接続の例外
08000 接続の例外が発生しました。
08003 接続が存在しません。
08006 接続に失敗しました。
08001 SQLクライアントはSQL接続を確立できませんでした。
08004 SQLサーバはSQL接続の確立を拒絶しました。
08007 トランザクションの解決が不明でした。
08P01 プロトコル違反
09クラス トリガによるアクションの例外
09000 トリガによるアクション例外
0Aクラス サポートされない機能
0A000 サポートされない機能
0Bクラス 無効なトランザクションの初期化
0B000 無効なトランザクションの初期化
0Fクラス ロケータの例外
0F000 ロケータの例外
0F001 無効な指定
0Lクラス 無効な権限付与
0L000 無効な権限付与
0LP01 無効な権限付与操作
0Pクラス 無効なロールの指定
0P000 無効なロールの指定
21クラス 次数違反
21000 次数違反
22クラス データ例外
22000 データ例外
2202E 配列要素エラー
22021 許容範囲外の文字
22008 日付時刻フィールドのオーバーフロー
22012 ゼロ割り
22005 代入エラー
2200B エスケープ文字の競合
22022 指示子のオーバーフロー
22015 内部フィールドのオーバーフロー
22018 キャストに無効な文字値
22007 無効な日付時刻の書式
22019 無効なエスケープ文字
2200D 無効なエスケープバイト(8bit)
22025 無効なエスケープシーケンス
22010 無効な指示子パラメータの値
22020 無効な制限値
22023 無効なパラメータ値
2201B 無効な正規表現
22009 無効なタイムゾーン置換値
2200C エスケープ文字の無効な使用
2200G 最も明確な型の不一致
22004 NULL 値の不許可
22002 NULL値、もしくは、指示子パラメータがない
22003 範囲外の数値
22026 文字列長の不一致
22001 文字列データの右側の切り詰め
22011 部分文字列エラー
22027 切り詰めエラー
22024 終端の無いC 文字列
2200F 空の文字列
22P01 浮動小数点例外
22P02 無効なテキスト表現
22P03 無効なバイナリ表現
22P04 コピーファイルの書式不良
22P05 翻訳できない文字
23クラス 整合性制約違反
23000 整合性制約違反
23001 制限違反
23502 非NULL違反
23503 外部キー違反
23505 一意性違反
23514 検査違反
24クラス 無効なカーソル状態
24000 無効なカーソル状態
25クラス 無効なトランザクション状態
25000 無効なトランザクション状態
25001 SQLトランザクションが実行中
25002 分岐トランザクションが既に実行中
25008 保持しているカーソルは同一の隔離レベルを要求
25003 分岐トランザクションにおける不適切なアクセスモード
25004 分岐トランザクションにおける不適切な隔離レベル
25005 分岐トランザクションにおいて活動中のSQLトランザクションが存在しない
25006 読み取りのみのSQL トランザクション
25007 スキーマとデータ文の混在はサポートしていない
25P01 活動中のSQLトランザクションが存在しない
25P02 失敗したSQLトランザクション内である
26クラス 無効なSQL文の名前
26000 無効なSQL文の名前
27クラス トリガによるデータ変更違反
27000 トリガによるデータ変更違反
28クラス 無効な認証指定
28000 無効な認証指定
2Bクラス 依存する権限記述子がまだ存在する
2B000 依存する権限記述子がまだ存在する
2BP01 依存するオブジェクトがまだ存在する
2Dクラス 無効なトランザクションの終了
2D000 無効なトランザクションの終了
2Fクラス SQL 関数例外
2F000 SQL 関数例外
2F005 実行した関数にRETURN文が存在しない
2F002 SQLデータの変更は許可されていない
2F003 禁止されたSQL文の試行
2F004 SQLデータの読み取りは許可されていない
34クラス 無効なカーソル名称
34000 無効なカーソル名称
38クラス 外部関数例外
38000 外部関数例外
38001 含まれるSQLは許可されていない。
38002 SQLデータの変更は許可されていない。
38003 禁止されたSQL文の試行
38004 SQLデータの読み取りは許可されていない
39クラス 外部関数呼び出し例外
39000 外部関数呼び出し例外
39001 無効なSQLSTATEが返された。
39004 NULL 値は許されません。
39P01 トリガプロトコル違反
39P02 SRFプロトコル違反
3Dクラス 無効なカタログ名称
3D000 無効なカタログ名称
3Fクラス 無効なスキーマ名称
3F000 無効なスキーマ名称
40クラス トランザクションロールバック
40000 トランザクションロールバック
40002 整合性制約違反
40001 シリアライゼーション失敗
40003 文の完了が不明
40P01 デッドロックの検出
42クラス 構文エラー、もしくは、アクセスロール違反
42000 構文エラー、もしくは、アクセスロール違反
42601 構文エラー
42501 不十分な権限
42846 強制型変換不可能
42803 グループ化エラー
42830 無効な外部キー
42602 無効な名称
42622 長過ぎる名称
42939 予約語
42804 データ型の不一致
42P18 データ型の未解決
42809 不正なオブジェクトの型
42703 未定義列
42883 未定義関数
42P01 未定義テーブル
42P02 未定義パラメータ
42704 未定義オブジェクト
42701 列の重複
42P03 カーソルの重複
42P04 データベースの重複
42723 関数の重複
42P05 pstatementの重複
42P06 スキーマの重複
42P07 テーブルの重複
42712 別名の重複
42710 オブジェクトの重複
42702 曖昧な列
42725 曖昧な関数
42P08 曖昧なパラメータ
42P09 曖昧な別名
42P10 無効な列参照
42611 無効な列定義
42P11 無効なカーソル定義
42P12 無効なデータベース定義
42P13 無効な関数定義
42P14 無効なPSTATEMENT定義
42P15 無効なスキーマ定義
42P16 無効なテーブル定義
42P17 無効なオブジェクト定義
44クラス 検査オプションに伴う違反
44000 検査オプションに伴う違反
53クラス リソース不足
53000 リソース不足
53100 ディスク空き容量不足
53200 メモリ不足
53300 接続過多
54クラス プログラム制限の超過
54000 プログラム制限の超過
54001 文が複雑過ぎる
54011 列数の過多
54023 引数の過多
55クラス 必要条件を満たさないオブジェクト
55000 必要条件を満たさないオブジェクト
55006 使用中のオブジェクト
55P02 関数パラメータは変更できません
57クラス 操作の介入
57000 操作の介入
57014 問い合わせのキャンセル
57P01 管理者による停止
57P02 クラッシュによる停止
57P03 現在接続できません
58クラス システムエラー(外部原因によるPostgreSQL自体のエラー)
58030 入出力エラー
58P01 未定義のファイル
58P02 重複するファイル
F0クラス 設定ファイルエラー
F0000 設定ファイルエラー
F0001 ロックファイルの存在
Class XX 内部エラー
XX000 内部エラー
XX001 データの破損
XX002 インデックスの破損

 


20080603 副問い合わせのJOIN文

SELECT 
	 TBLトラン.* 
	,TBLマスタ_1.構成番号
	,TBLマスタ_2.構成番号
	,TBLマスタ_3.構成番号
FROM 
(
	(
		TBLトラン  LEFT JOIN 
		(select * from TBLマスタ where 構成番号 = '001') AS TBLマスタ_1 
		ON TBLトラン.管理番号 = TBLマスタ_1.管理番号
	) 
	
	LEFT JOIN (select * from TBLマスタ where 構成番号 = '002') AS TBLマスタ_2 
	ON TBLトラン.管理番号 = TBLマスタ_2.管理番号

) LEFT JOIN (select * from TBLマスタ where 構成番号 = '003') AS TBLマスタ_3 
ON TBLトラン.管理番号 = TBLマスタ_3.管理番号

要は、from句のテーブルを記述する所で、カッコ書きにして、SELECT文を記述するようにすれば良い。

複数のテーブルをいくつもつなげると、カッコの階層が深くなって、見にくいわぁ。。。

 


戻る