2015-02-06 67 views
1

我想將一個SQL存儲過程轉換爲oracle。這是一個非常簡單的程序。它只是從表中返回一個id列表,這在sql中很容易實現。Oracle存儲過程返回一個ID列表

SQL

CREATE PROCEDURE [dbo].[tspInstalledLanguages] 
AS 
BEGIN 
    SELECT language_id from languages 
END 

我一個完整的新手,當涉及到甲骨文,我明白了,它不是直線前進,因爲這。

我已經試過如下:

甲骨文

CREATE OR REPLACE PROCEDURE tspInstalledLanguages 
AS 
BEGIN 
    SELECT LANGUAGE_ID FROM LANGUAGES; 
END; 

沒有運氣。 我得到它的預期消息select into

回答

1

It is.
例子:

DECLARE 
    v_authName author.author_last_name%type; 
BEGIN 
    SELECT author_last_name 
    INTO v_authName 
    FROM author 
    WHERE author_key = 'A103'; 
    dbms_output.put_line('Name: '||v_authName); 
END; 
/

因此,使用代碼:

CREATE OR REPLACE PROCEDURE tspInstalledLanguages 
IS 
v_language NUMBER; 
BEGIN 
    SELECT LANGUAGE_ID 
    INTO v_language 
    FROM LANGUAGES; 
    dbms_output.put_line(v_language); 
END; 
/
+0

這是否會返回相同的結果select語句? – Smeegs 2015-02-06 20:34:29

+0

是的,'dbms_output'會將這個輸出發送到SQL Dev中的CLI或輸出窗口。 – mmmmmpie 2015-02-06 20:37:19

+0

謝謝,我正在嘗試。它被讀入一個ORM,所以結果必須是一個完全像select語句結果的行集合。 – Smeegs 2015-02-06 20:39:48