Stored procedures 如何将变量值传递到存储过程中
我创建了一个变量类名,并给它赋值。 我在甲骨文有另一个程序向我发送电子邮件。 如何将此值传递到电子邮件的标题和正文中Stored procedures 如何将变量值传递到存储过程中,stored-procedures,oracle11g,Stored Procedures,Oracle11g,我创建了一个变量类名,并给它赋值。 我在甲骨文有另一个程序向我发送电子邮件。 如何将此值传递到电子邮件的标题和正文中 VARIABLE className varchar2(30) :classname := 0; BEGIN FOR i IN ( SELECT CLASS_INSTANCE_COUNT , CLASS_NAME FROM MODEL_CLASS_COUNTS WHERE TRUNC(COUN
VARIABLE className varchar2(30)
:classname := 0;
BEGIN
FOR i IN
(
SELECT CLASS_INSTANCE_COUNT , CLASS_NAME
FROM MODEL_CLASS_COUNTS
WHERE TRUNC(COUNT_DATETIME) = TRUNC(SYSDATE)
)
LOOP
IF i.CLASS_INSTANCE_COUNT = 0
THEN
:className := i.CLASS_NAME;
EMAIL('myemail@col.com', 'email header: &className is 0', 'body: count for &className is 0');
END IF;
END LOOP;
END;
/
我的猜测是,您不希望使用SQL*Plus变量或替换变量。我猜你只是想
BEGIN
FOR i IN
(
SELECT CLASS_INSTANCE_COUNT , CLASS_NAME
FROM MODEL_CLASS_COUNTS
WHERE TRUNC(COUNT_DATETIME) = TRUNC(SYSDATE)
)
LOOP
IF i.CLASS_INSTANCE_COUNT = 0
THEN
EMAIL('myemail@col.com',
'email header: ' || i.class_name || ' is 0',
'body: count for ' || i.class_name || ' is 0');
END IF;
END LOOP;
END;
我不确定我是否理解你想要发生什么。您有一个SQLPlus变量
:classname
和一个SQLPlus替换变量&classname
。在匿名PL/SQL块中使用其中一个而不是使用局部PL/SQL变量有什么原因吗(假设您甚至想使用局部变量)?是否希望SQL*Plus提示用户输入值(在这种情况下,您需要替换变量)?还是只希望值来自循环?是的。我刚散步回来,意识到我可以做到:)这正是我需要的。谢谢你@Justin cave