使用 'call' 函数从 P/L SQL 脚本 Oracle 中调用过程
Calling Procedure with 'call' function from within P/L SQL Script Oracle
我无法在 Oracle 数据库中 运行 这个简单的 if/then 语句。 (我认为这是 10.x 但不确定,似乎是我 sql 技能的问题而不是数据库版本)。
你能帮我弄清楚如何 运行 这个简单的过程 - email_table_copy() - 仅当 table 时发送 table 的 csv 副本里面有数据吗?
我必须将 'call' 与 email_table_copy 程序一起使用,看来这就是问题所在。
非常感谢您的帮助。
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
中删除 ;
:
DECLARE
ncount NUMBER(10);
v_sql LONG;
BEGIN
SELECT
COUNT(person_id)
INTO ncount
FROM
test_conditional;
IF ( ncount > 0 ) THEN
v_sql := q'[
call email_table_function('owner', 'test_conditional', 'csv', 'tyler.hahn@wpr.org')
]';
EXECUTE IMMEDIATE v_sql;
END IF;
END;
另外,如您所见,我将您的文字稍微修改为 q-literal 以使其更具可读性。
简单示例:
begin
execute immediate q'[
call dbms_output.put_line('Test string')
]';
end;
/
我无法在 Oracle 数据库中 运行 这个简单的 if/then 语句。 (我认为这是 10.x 但不确定,似乎是我 sql 技能的问题而不是数据库版本)。
你能帮我弄清楚如何 运行 这个简单的过程 - email_table_copy() - 仅当 table 时发送 table 的 csv 副本里面有数据吗?
我必须将 'call' 与 email_table_copy 程序一起使用,看来这就是问题所在。
非常感谢您的帮助。
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
中删除 ;
:
DECLARE
ncount NUMBER(10);
v_sql LONG;
BEGIN
SELECT
COUNT(person_id)
INTO ncount
FROM
test_conditional;
IF ( ncount > 0 ) THEN
v_sql := q'[
call email_table_function('owner', 'test_conditional', 'csv', 'tyler.hahn@wpr.org')
]';
EXECUTE IMMEDIATE v_sql;
END IF;
END;
另外,如您所见,我将您的文字稍微修改为 q-literal 以使其更具可读性。
简单示例:
begin
execute immediate q'[
call dbms_output.put_line('Test string')
]';
end;
/