gpt4 book ai didi

oracle - 如何使用 TOAD ORACLE 调用包 DEF 中定义的 sql 函数 ABC

转载 作者:行者123 更新时间:2023-12-01 06:14:38 26 4
gpt4 key购买 nike

我有一个名为 DEF 的 Oracle 包,其中有一个名为 ABC 的函数接受 1 个字符串参数。请问如何在TOAD Editor中直接调用这个函数ABC?

提前致谢。

CREATE OR REPLACE PACKAGE HPQ_IF.def AS
FUNCTION def(p_sql IN VARCHAR2)
RETURN VARCHAR2;
END def;
/


FUNCTION abc(p_sql IN VARCHAR2)
RETURN VARCHAR2
IS
j NUMBER;

BEGIN
dbms_output.put_line(p_sql);
RETURN 'Done';
END abc;

最后一个错误(使用下面的第一个答案):

[Error] Execution (6: 31): ORA-06550: line 6, column 31:
PLS-00302: component 'abc' must be declared
ORA-06550: line 6, column 3:
PL/SQL: Statement ignored

最佳答案

在 TOAD SQL 缓冲区中:

DECLARE
v_sql VARCHAR2(255);
v_return VARCHAR2(255);
BEGIN
v_sql := 'the string'; -- or get it from anywhere else
v_return := HPQ_IF.def.abc(v_sql);
dbms_output.put_line(v_return);
-- do anything else you want to do with the return value here...
END;

如果除了显示信息之外不想对返回值做任何事情:

SELECT HPQ_IF.def.abc('the string') FROM DUAL;

但是,对于在 SQL 中调用的 PL/SQL 函数(SELECT、INSERT 等),它必须没有某些副作用(即它不能修改数据库中的某些类型的状态)。要在 SELECT 中作为列调用,它不得修改数据库(例如插入或更新)、执行 DDL 或提交事务。


您还可以在模式浏览器中使用执行过程。

关于oracle - 如何使用 TOAD ORACLE 调用包 DEF 中定义的 sql 函数 ABC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com