SQL> define p_empno=7839
SQL> variable bonus1 number(10,2);
用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]
SQL> variable salary number(10,2);
用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]
SQL> begin
2 select sal
3 into :salary
4 from emp
5 where empno=to_number(&p_empno);
6 :bonus1:=
7 case
8 when :salary>10000 then :salary*0.2
9 when :salary<=10000 and :salary>=5000 then :salary*0.15
10 when :salary<5000 then :salary*0.1
11 when :salary is null then 0
12 end;
13 end;1.为什么我第二句写成number(10,2)它就出错呢,如果写成number它就没事.
2.case条件中,WHEN后面是表达式可以吗?
3.如果CASE条件中的一个条件满足了,是立刻退出来吗?
SQL> variable bonus1 number(10,2);
用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]
SQL> variable salary number(10,2);
用法: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]
SQL> begin
2 select sal
3 into :salary
4 from emp
5 where empno=to_number(&p_empno);
6 :bonus1:=
7 case
8 when :salary>10000 then :salary*0.2
9 when :salary<=10000 and :salary>=5000 then :salary*0.15
10 when :salary<5000 then :salary*0.1
11 when :salary is null then 0
12 end;
13 end;1.为什么我第二句写成number(10,2)它就出错呢,如果写成number它就没事.
2.case条件中,WHEN后面是表达式可以吗?
3.如果CASE条件中的一个条件满足了,是立刻退出来吗?
解决方案 »
- 简单SQL语句
- 急!ORA-06502
- 怎么样把java类加载到数据库中?
- 怎么实现oracle和jdbc中rowid格式的转化
- 如何取得当前时间与数据库时间的小时差?
- 在线等答案:起ORACLE时报:ORA-01113: file 3 needs media recovery 错误 (小女子,请个位大哥,多多帮忙)
- sql问题
- 真心求助:帮我解决长字符匹配数据库中的短字符
- 请问高手,两台机器分别装有oracle 和 SQL SERVER,请问如何实现ORACLE和SQL SERVER的互连
- ORACLE中NUMBER(12)类型的ID号,多人插入操作,取唯一值。
- 关于Oracle数据库视图的使用问题
- 从9i里导出数据,导入到10g里,数据出错!
2 可以是表达式
3 是退出的。