在oracle中为变量赋值

时间:2014-05-13 10:26:16

标签: oracle

 currDate VARCHAR2(4000);
SELECT to_date(SYSDATE, 'DD/MM/YYYY')  into currDate
FROM DUAL;

在oracle中执行上述语句后出现错误

ORA-00905:缺少关键字 00905. 00000 - "缺少关键字"

请帮助我解决它。 谢谢

2 个答案:

答案 0 :(得分:2)

如果要将值存储在变量中,请使用下面的内容

variable currDate varchar2(100);

exec :currDate:=to_char(SYSDATE, 'DD/MM/YYYY');
select :currDate from dual;

:CURRDATE
---------- 
13/05/2014

或者您可以使用匿名pl / sql块来执行此操作

set serveroutput on

declare
 currDate varchar2(100);
begin
 SELECT to_char(SYSDATE, 'DD/MM/YYYY') into currDate FROM DUAL;
 dbms_output.put_line(currDate);
end;

/

答案 1 :(得分:1)

这是SQL和PL / SQL(SQL的过程扩展)之间的区别。 你写的是pl / sql块的语法。 PL/SQL块的一般形式是

declare
...
begin
/* your code */
exception
....
end;
/

如果需要为变量赋值,SQL中的一般语法是

声明变量variable currDate varchar2(100);

为变量exec :currDate:=to_char(SYSDATE, 'DD/MM/YYYY');

赋值

此变量:currDate是全局的,可以在整个会话中使用。