oracle存储过程casewhen
A. oracle case when的用法是什么
1)导入用户(从用户scott导入到用户scott)。
impdp scott/tiger@orcl directory=mp_dir mpfile=expdp。dmp schemas=scott。
2)导入表(从scott用户中把表dept和emp导入到system用户中)。
impdp system/manager@orcl directory=mp_dir。
mpfile=expdp。dmptables=scott。dept,scott。emp remap_schema=scott:system。
(1)oracle存储过程casewhen扩展阅读
逻辑结构
由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。
总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。
B. 请教Oracle Case When用法
利用case when进行分支判断:
第一种形式:
CREATE OR REPLACE FUNCTION GET_SALARY1(ENAME IN VARCHAR2) RETURN NUMBER
AS
BEGIN
CASE
WHEN ENAME='ZXQ' THEN
RETURN 1;
WHEN ENAME='TJH' THEN
RETURN 2;
WHEN ENAME='HLW' THEN
RETURN 3;
ELSE
RETURN 0;
END CASE;
END GET_SALARY1;
第二种形式:只适用于表达式的值在有限且确定的范围之内进行匹配。
CREATE OR REPLACE FUNCTION GET_SALARY2(empno IN NUMBER) RETURN NUMBER
AS
BEGIN
CASE EMPNO
WHEN 0 THEN
RETURN 1;
WHEN 1 THEN
RETURN 2;
WHEN 2 THEN
RETURN 3;
ELSE
RETURN 0;
END CASE;
END GET_SALARY2;
第三种形式:
SELECT DEPTNO,(CASE WHEN ENAME='ZXQ' THEN EMPNO ELSE 0 END)
FROM EMP;
注:将表中每条数据都校验一下,若ENAME='ZXQ'则输出empno值否则输出0
C. oracle数据库存储过程,提示缺少关键字
Create Or Replace Procere Addtax As
Dis Float;
Begin
Insert Into Tax
Select t.Teacher_Id,
(t.Bonus + t.Wage) Depoist,
(t.Bonus + t.Wage) * (Case
When (t.Bonus + t.Wage) < 1000 Then
0.00
When (t.Bonus + t.Wage) Between 1000 And 3000 Then
0.03
When (t.Bonus + t.Wage) > 3000 Then
0.05
End Case)
From Teachers t;
End;
D. oracle里的case when是什么用法
1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=mp_dir mpfile=expdp.dmp schemas=scott;
2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=mp_dir mpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;
3)导入表空间
impdp system/manager@orcl directory=mp_dir mpfile=tablespace.dmp tablespaces=example;
4)导入数据库
impdb system/manager@orcl directory=mp_dir mpfile=full.dmp full=y;
5)追加数据
impdp system/manager@orcl directory=mp_dir mpfile=expdp.dmp schemas=systemtable_exists_action
E. oracle 关于 case when 的问题
只有paiming 是数字类型的,这个语句是没有问题的。
你这么写有什么错误了吗?
或者直接:
order by nvl(paiming,99)
F. oracle中自定义函数,使用case ,when时出错
select student,nvl(sum(yuwen),-1) as yuwen,nvl(sum(shuxue),-1) as shuxue,nvl(sum(wuli),-1) as wuli
from ( select student,
case when cource='yuwen' then mark else null end as yuwen,
case when cource='shuxue' then mark else null end as shuxue,
case when cource='wuli' then mark else null end as wuli
from bob_cj )
group by student
order by student
G. oracle sql case when 循环
没办法在简单查询中实现,需要用存储过程或者函数来做这个事情,不建议用太多的case when
H. Oracle存储过程返回记录集
declare
begin
for a in(select s.stuid,s.stuname,s.stusex,c.classnum,c.classname ,r.sturesults tmp from student s
left join result r on s.stuid=r.stuid
left join calss c on r.classnum=c.classnum
)
case when a.tmp>90 then
你要执行的操作;
case when a.tmp>60 and a.tmp<90 then
你要执行的操作;
case when a.tmp<60 then
你要执行的操作;
else
end case;
end;
I. oracle数据库case问题
你估计是问的case语句与case表达式吧
在存储过程中,case语句when后都要加分号而case表达式中不需要
你看这个是表达式的
case有两种表达式:
1. 简单Oracle case表达式,使用表达式确定返回值.
语法:
case search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN result2
....
WHEN expressionN THEN resultN
ELSE default_result
END
2. 搜索case表达式,使用条件确定返回值.
语法:
case
WHEN condition1 THEN result1
WHEN condistion2 THEN result
....
WHEN condistionN THEN resultN
ELSE default_result
END
J. Oracle: Case When 用法
case when是不支持单独使用的。
如果单独的条件判断,就需要PL/SQL语句
IF A=1 THEN
B := 1;
ELSEIF A=2 THEN
B := 2;
ELSE
B := 3;
END IF;