Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Oracle P/L SQL脚本中使用“call”函数调用过程_Sql_Oracle_Function_Stored Procedures - Fatal编程技术网

从Oracle P/L SQL脚本中使用“call”函数调用过程

从Oracle P/L SQL脚本中使用“call”函数调用过程,sql,oracle,function,stored-procedures,Sql,Oracle,Function,Stored Procedures,我无法在oracle数据库中运行这个简单的if/then语句。我认为它是10.x,但不确定,这似乎是我sql技能的问题,而不是db版本的问题 你能帮我弄清楚如何运行这个简单的过程-电子邮件\u table\u copy-仅当表中有数据时才发送表的csv副本吗 我必须在电子邮件\u表\u复制过程中使用“呼叫”,似乎这就是问题发生的地方 我非常感谢你的帮助 DECLARE ncount NUMBER(10); v_sql LONG; BEGIN SELECT

我无法在oracle数据库中运行这个简单的if/then语句。我认为它是10.x,但不确定,这似乎是我sql技能的问题,而不是db版本的问题

你能帮我弄清楚如何运行这个简单的过程-电子邮件\u table\u copy-仅当表中有数据时才发送表的csv副本吗

我必须在电子邮件\u表\u复制过程中使用“呼叫”,似乎这就是问题发生的地方

我非常感谢你的帮助

DECLARE
    ncount   NUMBER(10);
    v_sql    LONG;
BEGIN
    SELECT
        COUNT(person_id)
    INTO ncount
    FROM
        test_conditional;

    IF ( ncount > 0 ) THEN
        v_sql := 'call email_table_function(''owner'', ''test_conditional'', ''csv'', ''email@email.com''
);';
        EXECUTE IMMEDIATE v_sql; 
    END IF;

END;
只需删除;从您的v_sql:

声明 n计数10; v_sql LONG; 开始 选择 COUNTperson\u id 入帐 从…起 有条件的测试; 如果n计数>0,则 v_sql:=q'[ 调用email_table_函数'owner','test_conditional','csv','tyler。hahn@wpr.org' ]'; 执行即时v_sql; 如果结束; 终止 正如你所看到的,我对你的文字做了一些修改,使它更具可读性

简单的例子:

开始 立即执行q'[ 调用dbms_output.put_行'Test string' ]'; 终止 / 只需删除;从您的v_sql:

声明 n计数10; v_sql LONG; 开始 选择 COUNTperson\u id 入帐 从…起 有条件的测试; 如果n计数>0,则 v_sql:=q'[ 调用email_table_函数'owner','test_conditional','csv','tyler。hahn@wpr.org' ]'; 执行即时v_sql; 如果结束; 终止 正如你所看到的,我对你的文字做了一些修改,使它更具可读性

简单的例子:

开始 立即执行q'[ 调用dbms_output.put_行'Test string' ]'; 终止 /
每日提示:不要使用长数据类型,如果需要,请使用VARCHAR232767或CLOB。状态:不要创建具有长列的表。改用LOB列CLOB、NCLOB、BLOB。只有在向后兼容的情况下才支持长列。强调:在代码中避免它们也是一个好主意,如果需要的话,它们是非常难以工作的。每日提示:不要使用长数据类型,如果需要,使用VARCHAR232767或CLOB。状态:不要创建具有长列的表。改用LOB列CLOB、NCLOB、BLOB。只有在向后兼容的情况下才支持长列。在代码中避免它们也是一个好主意,如果你需要的话,它们是非常难以工作的。谢谢你,Sayan-这就解决了它!我很惊讶它竟然是一个放错地方的分号。我很高兴了解q-literal,它是我工具箱中一个非常好的操作符/工具。我还是SQL新手,非常感谢您的指导。谢谢您,Sayan-这就解决了它!我很惊讶它竟然是一个放错地方的分号。我很高兴了解q-literal,它是我工具箱中一个非常好的操作符/工具。我还是SQL新手,非常感谢您的指导。