DECLARE dyn_stmt VARCHAR2(200);
b1 boolean;
FUNCTION f(x INTEGER) RETURN boolean AS
BEGIN
RETURN FALSE;
END f;
BEGIN
dyn_stmt := 'BEGIN :b := f(5); END;';
EXECUTE IMMEDIATE dyn_stmt USING OUT b1; --line 9
b1:=f(5); --line 10
END;
コメント行 10 はエラーをスローしますが、コメント行 9 は正常に動作します。なんで ?エラー「式はSQL型でなければなりません」によると、AFAIK PL/SQLはブールデータ型をサポートしています。では、ここで何が問題なのですか?