相关疑难解决方法(0)

声明变量并从Oracle中的SELECT查询设置其值

在SQL Server中我们可以使用:

DECLARE @variable INT;
SELECT @variable= mycolumn from myTable;
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Oracle中做同样的事情?我目前正在尝试以下方法:

DECLARE COMPID VARCHAR2(20);
SELECT companyid INTO COMPID from app where appid='90' and rownum=1;
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用

在此输入图像描述

oracle plsql

37
推荐指数
3
解决办法
26万
查看次数

如何像在T-SQL中一样在PL/SQL中声明和使用变量?

在Sql Server中,经常在我测试存储过程的主体时,我将主体复制到SSMS中,将页面顶部的变量DECLARE,将它们设置为一些样本值,并按原样执行主体.

例如,如果我的proc是

CREATE PROC MySampleProc
    @Name   VARCHAR(20)
AS
    SELECT @Name
Run Code Online (Sandbox Code Playgroud)

然后我的测试SQL将是

DECLARE @Name VARCHAR(20)
SET     @Name = 'Tom'

    SELECT @Name
Run Code Online (Sandbox Code Playgroud)

什么是Oracle PL/SQL相当于此?

这是我提出的最接近的,但是我得到了"PLS-00428:在这个SELECT语句中需要一个INTO子句"

DECLARE
   myname varchar2(20);
BEGIN
     myname := 'Tom';

     select myname from DUAL;
END;
Run Code Online (Sandbox Code Playgroud)

这是我真正想要做的更好的例子:

DECLARE
   myname varchar2(20);
BEGIN
     myname := 'Tom';

     SELECT *
     FROM   Customers
     WHERE  Name = myname;
END;
Run Code Online (Sandbox Code Playgroud)

但是,当我真的只想要在屏幕上打印的记录而不是存储在另一个表格中时,它想要一个'INTO'.

解决:

感谢@Allan,我的工作得很好.Oracle SQL Developer显然会记住您提供的参数值.然而,PL/SQL Developer不想与此有任何关系....

在此输入图像描述

如果您"运行为脚本",它将遵循您的默认值,但它只会返回结果作为ASCI文本,而不是网格/电子表格

在此输入图像描述

t-sql sql-server oracle plsql oracle-sqldeveloper

24
推荐指数
2
解决办法
16万
查看次数

标签 统计

oracle ×2

plsql ×2

oracle-sqldeveloper ×1

sql-server ×1

t-sql ×1