質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

1回答

2043閲覧

psqlodbc 9.6 でのNative Code変化について

退会済みユーザー

退会済みユーザー

総合スコア0

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2017/03/21 02:37

Windows上で稼働しているPostgreSQLのバージョンを、9.6.2にバージョンアップしようとしています。
接続にpsqlodbc(Windows x64)を使用しているため、検証環境としてServer/Client共に9.6で構築したところ、Native Errorのコードが変わっていることに気づきました。
(SQLStateは、マニュアルに記載されているとおり、変わっていません)

Server/Clientの組み合わせを変えたところ、どうやらpsqlodbcが9.6だと、Serverのバージョンにかかわらず、Native Errorのコードが変わるようです。


(Serverは9.6.2 / 9.3.4でテスト)
Clientが 09.05.0400 より前
→Native Code:7

Clientが 09.06.0100 以降(0200も同様)
→Native Code:1


このNarive Codeの変化について、psqlodbcのリリースノートなどを確認してみたのですが、記述が見つかりませんでした。
これが仕様なのか不具合なのか、ご存じのかたはいらっしゃいませんか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PostgreSQLはもともとSQLSTATE形式以外のベンダー固有コードを返さないようなので、psqlodbcも意味のあるNative Codeを返していない、つまり「仕様として定義されていない」ということではないでしょうか。

以下は2001年のPostgreSQL MLのアーカイブからのもので、この当時はどうやらSQLSTATEすら実装されていなかったようですが、この時もpsqlodbcはエラーの内容に関わらず常に7を返していたようです。

Re: ODBC and Native error codes

Unfortunately PostgreSQL doesn't have error code

currently and so psqlodbc doesn't return any valid
Native error code

投稿2017/03/21 05:25

編集2017/03/21 05:51
SVC34

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/22 01:50

返信ありがとうございます。 仕様として定義されていないということなので(確かに、「7が返ってくる」とは明示されていないんですよね)、「Native Codeに慣例として返ってきていた値が変わったが、そもそも定義されていなかった値なので、その値の変化は仕様でも不具合でもない。エラーはSQLSTATEで取得することになっているでしょ?」程度と捉えるのが良さそうですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問