2017-02-28 2 views
1

私はこれで変圧器の制約があります。このTrim()関数が何をしているのか把握していますか?

'2017-02-27' 

そして、ここのようにTheDateが見えるものです::私は

'20170227' 

ここ

Trim(CollectFrom.collect_from,"-","A")<=TheDate 

はcollect_fromは、次のようになりますこのTrim()関数がどのように機能するかを正確には分かりません。私の最初の推測は、それが 'TheDate'と同じフォーマットを与えているということですが、私は "A"引数を理解していません。誰かがそれを説明できますか?

答えて

3

TRIM()のマニュアルページでは、動作しないはずです。

私はあなたが表示さが何を実行しようとすると、私はエラーを取得:

SQL[2405]: select trim('2017-02-01', '-', 'A') from dual; 
SQL -674: Routine (trim) can not be resolved. 
SQLSTATE: IX000 at /dev/stdin:1 
SQL[2406]: select trim('2017-02-01', '-') from dual; 
SQL -674: Routine (trim) can not be resolved. 
SQLSTATE: IX000 at /dev/stdin:2 

をマニュアルは、あなたがTRIM({BOTH|LEADING|TRAILING} [char] FROM source)が必要と言う:

SQL[2407]: select trim(both '-' from '2017-02-12') from dual; 
2017-02-12 
SQL[2408]: select trim(both '-' from '2017-02-12-') from dual; 
2017-02-12 
SQL[2409]: select trim(both '-' from '-2017-02-12-') from dual; 
2017-02-12 
SQL[2410]: 

(使用SQLコマンド・インタプリタは私SQLCMDである。)

誰かがここで検出できない3つの引数を取るTRIM関数を定義している可能性があります。それを見つけるためにデータベースのシステムカタログを調べなければなりません。許可されていないようです

OTOH、次のいずれか

SQL[2411]: create function trim(a varchar(10), b varchar(20), c varchar(30)) returning varchar(64); 
return trim(leading from a) || ' ' || trim(both from b) || ' ' || trim(trailing from c); 
end function; 
SQL -9710: Overloading of built-in functions is not allowed. 
SQLSTATE: IX000 at /dev/stdin:8 
SQL[2412]: 
2

のInformix 11.50はtrim()機能で構築していますhttps://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.sqls.doc/ids_sqs_1556.htmをしかし、それは、あなたの質問にtrim()から少し違って見えますので、私はあなたがtrim()を使用すると思いますいくつかのユーザーによってビルドされた関数です。

通常はtrim()は文字列の先頭または末尾の文字のみに注意しますが、例ではtrim()は文字列の中央にある-個の文字を削除する必要があります。最後の引数Aは、trim()に、このような文字をすべてソース文字列から削除するように指示していると思います。

trim()機能を実際に見つけるには、そのソースを見つける必要があります。あなたは(これはJDBCを使用しています)SQirreL SQLクライアントのようないくつかのGUIデータベースツールでそれを行うことができ、あなたはdbschema Informixのユーティリティを使用してまたはODBC/JDBCを使用しています私のPython/Jythonのプログラムでそれを行うことができます:https://code.activestate.com/recipes/576621-dump-informix-schema-to-text

それが役立つだろう使用しているInformixのバージョンを教えてください。

0

トリム(CollectFrom.collect_fromは、 " - "、 "A") - 入力文字列CollectFrom.collect_fromから '' ここで

にすべてのオカレンスのを削除することを意味します。したがって、あなたは '20170227'を得ています。ここでは、トリム機能に関するさらに詳しい情報を提供する文書があります。

https://www.ibm.com/support/knowledgecenter/en/SSZJPZ_11.5.0/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/r_deeref_String_Functions.html

関連する問題