在函数中将变量声明为SELECT INTO

时间:2015-06-16 22:09:04

标签: sql oracle-sqldeveloper

如何在SQL-DEVELOPER中声明要选择的变量

这不起作用,我不知道解决方法是什么

CREATE OR REPLACE FUNCTION CORRESPONDING_DATE 
(
  DATE_IN IN VARCHAR
)

 RETURN  VARCHAR is out_date VARCHAR(250);
 tmp_current_yr_hday_start DATE;
 BEGIN
   DECLARE    
   SELECT hday_start into tmp_current_yr_hday_start from hday_period where year = TO_CHAR(DATE_IN, 'YYYY'); -- get the current year holiday start period date            
  RETURN (out_date);
END CORRESPONDING_DATE;

错误消息

  

错误(11,3):PL / SQL:忽略SQL语句

     

错误(11,26):PLS-00201:标识符' TMP_CURRENT_YR_HDAY_START'必须   宣布

     

错误(11,52):PL / SQL:ORA-00904 ::无效标识符

1 个答案:

答案 0 :(得分:0)

据我所知,PLSQL功能块具有以下结构:

  • DECLARE
  • BEGIN
  • END

你可以尝试:

CREATE OR REPLACE FUNCTION CORRESPONDING_DATE 
(
  DATE_IN IN VARCHAR
)
RETURN  VARCHAR is 
    out_date VARCHAR(250);
    tmp_current_yr_hday_start DATE;
BEGIN
  SELECT hday_start into tmp_current_yr_hday_start from hday_period where year = TO_CHAR(DATE_IN, 'YYYY'); -- get the current year holiday start period date
  -- WARN nothing is set in out_date... 
  RETURN (out_date);
END CORRESPONDING_DATE;
/

我无法测试。我现在无法访问Oracle服务器。