2017-03-27 30 views
-1

出於某種原因,每次我嘗試運行此操作時,都會出現錯誤,指出第4行第3列(SELECT)中的SQL語句已被忽略。還說,「年」:無效的標識符。 Year是同一表單中存在的另一列。我正在嘗試使用連字符來顯示年份,例如:「17-」。由於某種原因,SELECT命令不被識別。

DECLARE 
    TERRA_NUMBER VARCHAR2(40); 
BEGIN 
SELECT CONCAT(YEAR , '-') 
INTO TERRA_NUMBER FROM DUAL; 
    RETURN TERRA_NUMBER; 
END; 
+0

你能解釋一下你做,似乎你忘了從SELECT –

+0

步驟雙'桌。那裏沒有年份欄目。爲什麼從匿名塊返回? – John

+1

條款(基於評論說,今年是列)你從選擇'爲您解決問題 – GurV

回答

0

這是太長的評論。

首先,Oracle中沒有YEAR變量。也許你打算TO_CHAR(sysdate, 'YYYY')

其次,匿名編程塊不返回值。所以,RETURN是不合適的。

如果這是函數或存儲過程的一部分,則應顯示整個定義。

+0

我實際上並沒有意識到我已經從DUAL書面。我實際上正在試圖從我已經稱爲APPLICATION的表中獲得YEAR。 – ruchithelamp

+0

謝謝你,指出我的代碼得到驗證。現在我只需要擔心一次只能得到一行。 – ruchithelamp

0

也許你可以創建FindYear函數。

CREATE OR REPLACE FUNCTION FindYear RETURN VARCHAR2 
IS 
TERRA_NUMBER VARCHAR2(40); 
BEGIN 

SELECT CONCAT(TO_CHAR(sysdate, 'YYYY') , '-') 
INTO TERRA_NUMBER FROM DUAL; 
RETURN(TERRA_NUMBER); 
END; 
/

enter image description here