我正在使用insert語句將BDE表(源)轉換爲使用IB數據轉換的Firebird表(目標)。所以INSERT語句通過參數來源表值。其中一個源字段參數爲alphanum (SOURCECHAR10 char(10)
,主要包含整數,需要在(整數類型)目標列NEWINTFLD
中轉換爲整數。如果不是數字,我想將0分配給NEWINTFLD
。使用IIF在INSERT中將char轉換爲整數似乎到
我用IIF
和SIMILAR
來測試該字符串是否是數字,如果不是數字如下分配0:
INSERT INTO "DEST_TABLE" (......, "NEWINTFLD",.....)
VALUES(..., IIF(:"SOURCECHAR10" SIMILAR TO '[[:DIGIT:]]*', :"SOURCECHAR10", 0),..)
對於每一個非數字字符串不過,我仍然得到轉換錯誤(DSQL error code = -303)
。
我唯一不變的像SOURCECHAR10" SIMILAR TO '[[:DIGIT:]]*', 1, 0)
的IIF
結果字段測試,工作正常,從而以某種方式:在IIF
的真實結果字段生成錯誤。 任何想法如何解決這個問題?
如果我讀這正確的外鑄件應用,你只測試值是以數字開頭的。您是否有以數字開頭但後面有非數字值的值? – MatBailie 2012-01-10 13:31:36
是的,可以。但是afaik [[:DIGIT:]] *表示如果我查看http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-similar-to.html – 2012-01-10 13:39:49