Oracle Databaseのアップグレード後のSQL*PlusスクリプトおよびPL/SQLのアップグレード
新しいOracle Databaseリリースの機能およびファンクションを使用するには、新しいOracle Databaseリリースの構文を使用するように既存のSQLスクリプトを変更する必要があります。
既存のSQLスクリプトで新しいOracle Databaseリリースの機能およびファンクションを使用しない場合、それらは新しいOracle Databaseリリースで変更されずに実行されるため、変更は不要です。
新しいOracle Databaseリリースではエラー確認機能が強化されているため、実行時ではなくコンパイル時にエラーを識別できる場合があります。
- 数値リテラルの評価
リテラルを使用する数値計算の場合は、1つ以上の定数で小数第1位に小数点を指定する必要があります。
数値リテラルの評価
リテラルを使用する数値計算の場合は、1つ以上の定数で小数第1位に小数点を指定する必要があります。
Oracle Database 10gリリース1 (10.1)以上のすべてのOracle Databaseリリースでは、一部の式でINTEGER
演算(有効桁数は約9桁)が使用されるため、この要件が必要になります。Oracle9iリリース2 (9.2)では、NUMBER
演算(有効桁数は約38桁)が使用されていました。有効桁数が9桁を超えるリテラルが計算結果に含まれる場合、数値オーバーフローのエラーを回避するには、1つのリテラルが小数形式であることが必要です。たとえば、Oracle Database 10g以上のリリースでは、次に示す例のv1
の計算で数値オーバーフローのエラーが発生します。
DECLARE
v1 NUMBER(38);
BEGIN
v1 := 256*256*256*256;
DBMS_OUTPUT.PUT_LINE(v1);
END;
/
このエラーに対する解決策として、1つの数値リテラルを次のように小数(256.0)として指定します。
DECLARE
v1 NUMBER(38);
BEGIN
v1 := 256*256*256*256.0;
DBMS_OUTPUT.PUT_LINE(v1);
END;
/
参照:
SQL*Plusおよび数値リテラルの要件の詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください