2009年01月01日
英大文字で名前をつけた識別子...
こんな記事を見つけました。
以前、Windows版のInformix Dynamic Serverで、大文字のユーザー名を使うとどうなるかについて書いたことがありました。
Informix Dynamic Serverでは、クオートされて(引用符で囲まれて)いない識別子は小文字に変換されてから取り扱われます。
こちらの記事にあるテストプログラム(SQL)の実行結果も、postgreSQLでの結果と同じになります。
ところで、繰り返しますがInformixでは、デフォルトでは識別子をクオートする書式は許されていません。そのまま実行すると文法エラーになります。以下のように、環境変数DELIMIDENTを設定してからクライアントを実行すればOKです。
上の例では、文法エラー ( SQL -201 ) が発生したので一度クライアントを ^C で終了させ、環境変数DELIMIDENTを設定して再びクライアントを実行し同じSQLを実行しています。
以前、Windows版のInformix Dynamic Serverで、大文字のユーザー名を使うとどうなるかについて書いたことがありました。
Informix Dynamic Serverでは、クオートされて(引用符で囲まれて)いない識別子は小文字に変換されてから取り扱われます。
こちらの記事にあるテストプログラム(SQL)の実行結果も、postgreSQLでの結果と同じになります。
ところで、繰り返しますがInformixでは、デフォルトでは識別子をクオートする書式は許されていません。そのまま実行すると文法エラーになります。以下のように、環境変数DELIMIDENTを設定してからクライアントを実行すればOKです。
sh-3.2$ dbaccess - -
> create database mydb with log;
Database created.
> create table "MyTable" ( col1 integer, col2 varchar(10) );
201: A syntax error has occurred.
Error in line 1
Near character position 24
> ^Csh-3.2$ export DELIMIDENT=y
sh-3.2$ dbaccess mydb -
Database selected.
> create table "MyTable" ( col1 integer, col2 varchar(10) );
Table created.
上の例では、文法エラー ( SQL -201 ) が発生したので一度クライアントを ^C で終了させ、環境変数DELIMIDENTを設定して再びクライアントを実行し同じSQLを実行しています。
同じことをあらためてDB2で実行しようと思い、Mac OSX版のDB2 9.5.2 (Beta)をダウンロードしてみました...
インストール時のヒント集が紹介されていたので参考にしながらインストール。Mac OSX 10.5.6上で無事に動き出しました、が...
Informix に手が慣れていると、こんなエラーが出まくりです。
文末にセミコロンつけちゃいけないんですね。
インストール時のヒント集が紹介されていたので参考にしながらインストール。Mac OSX 10.5.6上で無事に動き出しました、が...
Informix に手が慣れていると、こんなエラーが出まくりです。
db2 => create table t ( col1 integer, col2 char(10) );
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token ";" was found following "ger, col2 char(10) )".
Expected tokens may include: "END-OF-STATEMENT". SQLSTATE=42601
db2 => create table t ( col1 integer, col2 char(10) )
DB20000I The SQL command completed successfully.
文末にセミコロンつけちゃいけないんですね。
Posted by oninit at 00:45│Comments(2)
│ちょっと細かいテックネタ
この記事へのコメント
SIM大先生、
ありがとうございまする。私には "-t"が必須になりそうです。
あ、言い忘れましたが明けましておめでとうございます。今年もよろしくお願いいたします。
ありがとうございまする。私には "-t"が必須になりそうです。
あ、言い忘れましたが明けましておめでとうございます。今年もよろしくお願いいたします。
Posted by oninit
at 2009年01月01日 22:42

DB2コマンドプロンプトを起動する際に、
> db2 -t
で起動すると文末のセミコロンを待つようになりますよ。
> db2 -t
で起動すると文末のセミコロンを待つようになりますよ。
Posted by SIM at 2009年01月01日 15:21
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。