私のデータベースはPostgres8です。データ型を別のデータ型にキャストする必要があります。つまり、列のデータ型の1つは、ステートメント内のPostgresでvarcharキャストする必要があります。intSELECT
現在、文字列値を取得しintてJavaにキャストしています。
それを行う方法はありますか?サンプルコードをいただければ幸いです。
私のデータベースはPostgres8です。データ型を別のデータ型にキャストする必要があります。つまり、列のデータ型の1つは、ステートメント内のPostgresでvarcharキャストする必要があります。intSELECT
現在、文字列値を取得しintてJavaにキャストしています。
それを行う方法はありますか?サンプルコードをいただければ幸いです。
cast(varchar_col AS int) -- SQL standard
また
varchar_col::int -- Postgres syntax shorthand
これらの構文バリアントは (ほぼ)どこでも有効です。2 番目は、特殊な状況で入れ子の括弧が必要になる場合があります。
そして、構文の制限により関数表記のみが許可されている場合、最初の表記が必要になる場合があります。
さらに 2 つのバリアントがあります。
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
私がどのように書いたかに注意してください。これは内部型名であり、そのために定義された関数もあります。またはとしては機能しません。int4(varchar_col)integer()int()
最後の形式は配列型では機能しないことにも注意してください。またはである必要があります。int[] '{1,2,3}''{1,2,3}'::int[]cast('{1,2,3}' AS int[])
に対して有効であるためintegerには、文字列はオプションの先行記号 ( +/ -) とそれに続く数字のみで構成されている必要があります。先頭/末尾の空白は無視されます。