2017-04-21 9 views
0

REGEXP_LIKE(7.1?)から

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/db2/rbafzregexp_like.htm

SELECT PID FROM PRODUCT 
WHERE NOT REGEXP_LIKE(pid,'[0-9]{3}-[0-9]{3}-[0-9]{2}') 

しかし、私は同様のコマンドを実行すると、

SELECT MYCOLUMN FROM MYTABLE 
WHERE NOT REGEXP_LIKE(MYCOLUMN,'[0-9]{3}-[0-9]{3}-[0-9]{2}') 

は私が

SQL状態を取得します:42601ベンダーコード:-104メッセージ:[SQL0104]トークン は無効です。有効なトークン:<> = <> < =! <!>

=¬<¬>¬= IN。原因。 。 。 。 。 :トークンで構文エラーが検出されました。トークンは有効な トークンではありません。有効なトークンの部分リストは、<> = <> < =!です。 <!>!=> =¬< ¬>¬= IN。このリストは、ステートメントが トークンまで正しいことを前提としています。エラーは文の早い方ですが、 という構文が現時点で有効と思われます。回復。 。 。 : 次のいずれかを実行して、要求を再試行します。 - トークンの領域にあるSQL文を確認します。 ステートメントを修正してください。エラーは、カンマがないか、または の引用符である可能性があります。スペルミスの可能性があります。または、文節の順序に関連する です。 - エラートークンが有効な場合、有効な句で終了しないため、SQL文を修正してください。

この例がうまくいかない理由はありますか? IBM v7r1は7.1と同じではありませんか?

+0

あなたが下にあるDB2のバージョンを確認:SYSIBM.SYSDUMMY1' または SYSIBMADM.ENV_INST_INFO' – Stavr00

+0

からそれらの仕事=/ –

+0

私のSYSIBMのどちら 'SELECT * FROM ' SELECT GETVARIABLE( 'SYSIBM.VERSION') .SYSDUMMY1テーブルは1列の 'Y'のあるIBMREQDです –

答えて

2

7.1およびV7R1は同じものです...

正規表現のサポートは仕事がPTFグループで使用、コマンドラインからの技術リフレッシュ(TR)レベル9

の一部として追加されました( WRKPTFGRP)コマンド

WRKPTFGRP PTFGRP(SF99707) PTFGRPLVL(*INSTALLED) 

また、5770-SS1オプション#39ユニコード用インターナショナルコンポーネントがインストールされている必要があります。 DSPSFWRSC(Display Software Resources)を使用して、それをチェックすることができます。

これがインストールされていないと、メッセージが表示されます。
QSYSタイプのSQL0204 - QQQSVREGが見つかりません。* SRVPGMが見つかりません。

+0

SF99707はレベル6を示していますので、ありがとうございます! あなたの答えをありがとう。毎日もっと学習する...そのオプションのDSPSFWRSCがインストールされています。 –

+0

TRレベル9の一部であることをどのように見つけた(または知っていた)のですか? –

+0

私は[link](https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/IBM%)で今すぐ見ることができます。 20i%207.1%20-%20TR9%20Enhancements)しかし、キーワードTRがなくても私は失われました。 –

関連する問題