将 BLOB/CLOB 作为参数传递给 PL/SQL 函数

Ula*_*kar 4 sql database oracle plsql

我的包裹中有这个程序:

程序 pr_export_blob(
    p_name IN VARCHAR2,
    p_blob 在 BLOB 中,
    p_part_size(数量);

我希望参数p_blob为 BLOB 或 CLOB。

当我使用 BLOB 参数调用此过程时,一切都很好。当我使用 CLOB 参数调用它时,出现编译错误:

PLS-00306:调用“pr_export_blob”时参数数量或类型错误

有没有办法编写一个过程,可以将这些类型中的任何一个作为参数?也许是某种超类?

Chr*_*ill 5

为什么不重载该过程来实现 CLOB

PROCEDURE pr_export_lob(
    p_name              IN      VARCHAR2,
    p_blob              IN      BLOB,
    p_part_size         IN      NUMBER);

PROCEDURE pr_export_lob(
    p_name              IN      VARCHAR2,
    p_clob              IN      CLOB,
    p_part_size         IN      NUMBER);
Run Code Online (Sandbox Code Playgroud)

然后,您需要弄清楚每个过程中要做什么的逻辑。正如科林所说, CLOB 不是 BLOB - 所以我不确定你打算用它做什么