oracle常用操作2
来源:互联网 发布:java保留两位小数输出 编辑:程序博客网 时间:2024/06/15 07:15
declare
-- 声明变量时指定初始值。
v_name varchar2(50) := '孙悟空';
begin
v_name := '白骨精';
end;
select * from emp;
select * from emp where comm is null;
-- expr1 between expr2 and expr3
-- expr1、expr2、expr3 它们都可以变量、常量、表达式、列名
-- 只要expr1 >= expr2 and expr1 <= expr3 就可以了。
select * from emp where nvl(comm , 0)*2+1800 between sal and 4500;
select * from emp where sal between 3000 and 4500;
select * from emp where sal between 4500 and 3000;
select * from emp where 列 in (val1 ,val2 , val3);
-- expr1 in(expr2 , expr3 ,expr4...);
-- expr1、expr2、expr3、expr4 它们都可以变量、常量、表达式、列名
-- 只要expr1 = expr2 or expr1 = expr3 or expr1 = expr4 就可以了。
select * from emp where 700*2 in(sal-100 , comm);
SQL> declare
2 v_name varchar2(50);
3 begin
4 v_name := 'aa';
5 dbms_output.put_line(v_name);
6 end;
7 /
PL/SQL procedure successfully completed
SQL> var v_max_price number;
SQL> begin
2 :v_max_price := 200;
3 end;
4 /
PL/SQL procedure successfully completed
v_max_price
---------
200
SQL>
SQL>
SQL> print v_max_price;
v_max_price
---------
200
SQL> begin
2 dbms_output.put_line(:v_max_price);
3 end;
4 /
PL/SQL procedure successfully completed
v_max_price
---------
200
declare
-- 定义Table类型
type name_table_type is table of varchar2(50)
index by binary_integer;
-- 定义了一个Table变量
name_table name_table_type;
type two_dimen_table_type is table of name_table_type
index by binary_integer;
v_2_table two_dimen_table_type;
v_index binary_integer;
begin
name_table(0) := '孙悟空';
name_table(-29) := '白骨精';
name_table(100) := '牛魔王';
dbms_output.put_line(name_table(100));
-- v_index等于name_table里第一个元素的索引
v_index := name_table.first;
while name_table.exists(v_index) loop
dbms_output.put_line(v_index || '-->'
|| name_table(v_index));
-- 获取下一个元素的索引值。
v_index := name_table.next(v_index);
end loop;
v_2_table(0)(20) := '猪八戒';
dbms_output.put_line(v_2_table(0)(20));
end;
declare
-- 定义了一个数组类型
type name_array_type is varray(10)
of varchar2(50);
v_name_array name_array_type := name_array_type('aa' , 'bb', 'cc', 'dd');
v_name2_array name_array_type := name_array_type('甲' ,'乙'
, '丙' , '丁' , '戊');
begin
dbms_output.put_line('---');
v_name_array(1) := 'aaa';
v_name2_array(5) := 'aaa';
end;
declare
-- 定义了一个record类型
type dept_record_type is record
(
v_deptno number,
v_dname varchar2(50),
v_loc varchar2(50)
);
v_dept_record dept_record_type;
begin
-- record类型的变量,相当于表的一行。
v_dept_record.v_deptno := 10;
v_dept_record.v_dname := '研发部';
v_dept_record.v_loc := '广州';
dbms_output.put_line(v_dept_record.v_deptno
|| v_dept_record.v_dname
|| v_dept_record.v_loc);
-- record变量最大的用处在于:存、取表格里的一条记录。
-- 把表格的一条记录存入record变量,
-- 直接把record变量整体insert到某个表中。
end;
declare
-- 该变量的主要用于存 dept表里dname列的值
-- 这个语法可以保证v_dname的类型永远和dname列的类型相同。
v_dname dept.dname%type;
-- 让v_myname的类型永远和v_dname的类型保持一致。
v_myname v_dname%type;
v_emp_record emp%rowtype;
begin
v_dname := '市场部';
dbms_output.put_line(v_dname);
v_emp_record.empno := 8992;
v_emp_record.ename := '王琥';
v_emp_record.job := '经理';
insert into emp values v_emp_record;
end;
select * from emp;
declare
v_dname dept.dname%type;
v_loc dept.loc%type;
v_emp_record emp%rowtype;
begin
select dname , loc
into v_dname , v_loc
from dept
where deptno = 20;
dbms_output.put_line(v_dname ||
'-->' || v_loc);
-- 把查询出来的表记录存入record变量
select *
into v_emp_record
from emp
where empno = 7934;
-- 如果查询的记录超过了一行,需要使用游标
dbms_output.put_line(v_emp_record.ename ||
'-->' || v_emp_record.sal);
end;
declare
v_dept_record dept%rowtype;
begin
v_dept_record.deptno := 11;
while v_dept_record.deptno < 20 loop
v_dept_record.dname := '部门'
|| to_char(v_dept_record.deptno);
v_dept_record.loc := '位置'
|| to_char(v_dept_record.deptno);
-- 直接把一条record记录插入指定表
insert into dept
values v_dept_record;
v_dept_record.deptno := v_dept_record.deptno + 1;
end loop;
end;
select * from dept;
rollback;
declare
v_deptno dept.deptno%type;
begin
v_deptno := 12;
while v_deptno < 20 loop
update dept
set dname='新部门'
where deptno = v_deptno;
v_deptno := v_deptno + 2;
end loop;
end;
begin
delete from dept
where to_char(deptno) not like '%0';
dbms_output.put_line('删除了' ||
SQL%rowcount || '条记录');
end;
select * from dept;
rollback;
create table test
(
test_id number
);
begin
execute immediate 'drop table test';
execute immediate 'drop user fkjava';
end;
- 常用oracle操作2
- oracle常用操作2
- oracle常用操作2
- oracle基本操作-常用操作2
- oracle 常用操作/常用查询
- ORACLE数据库常用操作
- oracle 常用操作
- oracle常用操作
- Oracle DBA常用操作
- 常用oracle操作(二)
- 常用oracle操作(三)
- oracle常用操作
- oracle常用操作命令
- ORACLE的常用操作
- oracle常用操作
- oracle常用操作命令
- Oracle 常用操作总结
- Oracle常用操作笔记
- IOS开发系列—Objective-C之Foundation框架
- Intent传值的使用
- R语言进行中文分词和聚类
- Struts2中Action的数据如何获取的
- 在Linux里设置环境变量的方法(export PATH)
- oracle常用操作2
- 使用C++11改造muduo
- sass 语法简介
- 打包过程vs2010(包含卸载功能、生成一个exe文件)
- x.509证书
- 跨站脚本攻击基础
- 将参数传到session中
- 请注意,Volley已默认使用磁盘缓存
- js放大、缩小页面