ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

B.3.1 関数の引数に指定できるデータ型と異なるデータ型の値式を指定したい

Oracleデータベース

SELECT SUBSTR( col1,
               1,
               col2)
  FROM DUAL;

※col1、col2はCHAR型とします。

FUJITSU Enterprise Postgres

CREATE CAST (CHAR AS INTEGER) WITH INOUT AS IMPLICIT;

SELECT SUBSTR( col1,
               1,
               col2)
  FROM DUAL;
# SELECT文に変更ありません;

※col1、col2はCHAR型とします。


機能差異
Oracleデータベース

関数の引数に指定できるデータ型に型変換できる場合は暗黙の型変換が行われます。

FUJITSU Enterprise Postgres

データ型種類が異なる場合や、桁落ちが発生する場合は暗黙の型変換は行われません。

移行手順

文字列長のデータ型が明確であるため、文字列長に指定したCHAR型の値(例のcol2)がINTEGER型へ、暗黙の型変換されるように、先だって一回だけ以下のCREATE CASTを実行します。

CREATE CAST (CHAR AS INTEGER) WITH INOUT AS IMPLICIT;