2015-07-06 47 views
2

我無法將T-SQL腳本轉換爲ORACLE。如何在結果集中顯示變量值

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

select dual('SOME VALUE'as VARCHAR(50))from dual? – jarlh

+0

它必須有DECLARE語句。 –

+0

@PratapMane不要只是發佈一些東西,並期望有人爲你轉換代碼。解釋你的要求。發佈輸入和期望的輸出。 –

回答

0

如果在SQL工作,想返回的結果集返回像T-SQL,您可以使用SP與甲骨文側出SYS_REFCURSOR參數。這種情況下的結果集可以以各種方式返回和處理。請按照下面的例子中的解決方案之一:

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; 
+0

我不想打印留言。我需要它在resultset中。 –

+0

然後你需要一個sys_refcursor –

+0

我同意@IspirerSQLWaysMigrations使用sys_refcursor。如果你仍然不想使用sys_refcursor,那麼我會推薦使用Oracle TYPES。 –

0

我想你只需要一個簡單的選擇

例如,

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