Oracle にコード行があり、それを Teradata に変換する必要がありました。オラクルのクエリは
/* add to avoid invalid number due to junk in column */
AND regexp_instr(table.column, ''[^[:digit:]]'', 1, 1) = 0
Teradata で書いたコード
AND (CASE WHEN (POSITION('' '' IN TRIM(table.column)) > 0) OR (UPPER(TRIM(table.column))
(CASESPECIFIC) <> LOWER(TRIM(table.column)) (CASESPECIFIC))
THEN 1 ELSE 0 end ) = 0
列はとして定義されてVARCHAR(20)
いますが、データがすべて数値である行のみを選択したいです。Teradata クエリは非常に長時間実行されるクエリであり、テーブルを作成するためのアクセス権がないため、または所有しているデータベースの出力を確認できません。私はいくつか試してみましたが、うまくいくように見えますが、構文と REGEXP_INSTR の理解を確認したいと思っていました。