如何在结果集中显示变量值

时间:2015-07-06 08:12:37

标签: sql oracle oracle11g oracle10g

我无法将T-SQL脚本转换为ORACLE。

DECLARE @ABC VARCHAR(50) = 'SOME VALUE'
SELECT @ABC

2 个答案:

答案 0 :(得分:0)

如果您正在使用SQL并希望像在T-SQL中那样返回结果集返回,则可以在Oracle端使用带有sys_refcursor参数的SP。在这种情况下的结果集可以以各种方式返回和处理。请按照以下示例获取其中一个解决方案:

create or replace  procedure sp_ret_res_set(ref1 out sys_refcursor)
is
v_ABC VARCHAR2(50) DEFAULT 'SOME VALUE';
begin
open ref1 for select v_ABC from dual;
end;
/
var c refcursor;
/
execute sp_ret_res_set(:c);
/
print c;

答案 1 :(得分:0)

我认为你只需要一个简单的 SELECT

例如,

SQL> SELECT CAST('SOME VALUE' AS VARCHAR(50)) str FROM dual;

STR
--------------------------------------------------
SOME VALUE

SQL>

您可以直接使用 DUAL 表而无需显式转换为VARCHAR2,

SQL> SELECT 'SOME VALUE' str FROM dual;

STR
----------
SOME VALUE

SQL>

但是,如果您没有明确地投射它,它将是 CHAR 而不是 VARCHAR2 。因此,如果您希望数据类型为VARCHAR2,请使用 CAST