在 Sql Server 中,我经常在测试存储过程的主体时,将主体复制到 SSMS 中,在页面顶部声明变量,将它们设置为一些示例值,然后按原样执行主体。
例如,如果我的 proc 是
CREATE PROC MySampleProc
@Name VARCHAR(20)
AS
SELECT @Name
然后我的测试 sql 将是
DECLARE @Name VARCHAR(20)
SET @Name = 'Tom'
SELECT @Name
与此等效的 Oracle PL/SQL 是什么?
这是我想出的最接近的,但我得到“PLS-00428:此 SELECT 语句中应有一个 INTO 子句”
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
select myname from DUAL;
END;
这是我真正想做的一个更好的例子:
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
SELECT *
FROM Customers
WHERE Name = myname;
END;
但同样,它需要一个“INTO”,而我真的只想将记录打印在屏幕上,而不是存储在另一个表中......
解决:
感谢@Allan,我已经让它运行得很好。Oracle SQL Developer 显然会记住您提供给它的参数值。然而,PL/SQL Developer 不想与此有任何关系......
如果您“以脚本方式运行”,它将遵循您的默认设置,但它只会以 ASCI 文本的形式返回结果,而不是在网格/电子表格中