4

PL/SQLのSQLデータ型について学習します。次の式がどのデータ型であるかについて質問があります。

temp := temp1 < (temp2/ 3);

これがどのデータ型であるかについて少し混乱しています。データ型は、数値型、文字型、ブール型、日時型、および間隔型にすることができますが、式<および/のため、これは私を失望させます。これはブール値だと思いますが、よくわかりません。

4

2 に答える 2

7

ブール値です。これは次と同等です。

boolean temp;
... 

if (temp1 < (temp2/3) then
  temp := true;
else
  temp := false;
end if;
于 2013-01-22T08:11:10.297 に答える
0

この場合、Oracleは少し複雑です。SQLとPL/SQLは、2つの異なるエンジンによって解釈されます。それらのそれぞれは、それらが類似しているように見えても、独自のデータ型のセットを持っています。単にSQLのVARCHAR2は、PL/SQLのVARCHAR2とは異なります。コレクションの作業を開始すると、少し混乱します。また、SQLにはBOOLEANのようなデータ型はありませんが、PL/SQLにはあります。唯一の例外は、パラメータとして条件を受け入れるSQL関数LNNVLですが、とにかく「true」や「false」のようなリテラルを使用することはできません。SQLクエリです。

于 2013-01-23T21:25:22.453 に答える