oracle使用子查询插入和修改数据
使用子查询插入数据:
示例一:insert into employee (empno,ename,sal,deptno)
select empno,ename,sal,deptno from emp
where deptno=20;
示例二:insert /*+APPEND*/ into employee (empno,ename,sal,deptno)
select empno,ename,sal,deptno from emp
where deptno=20;
尽管执行结果一样,但第二条语句使用/*+APPEND*/来表示采用直接装载方法可以使执行速度加快。
使用子查询修改数据:
示例一:select job,sal,comm from emp where ename='SMITH';
update emp set job='check',sal=2200,comm=200
where ename='SCOTT';
示例二:update emp set (job,sal,comm)=(
select job,sal,comm from emp where ename='SMITH')
where ename='SCOTT';
这个例子说的是:使雇员SCOTT的岗位、工资、补助与雇员SMITH的完全相同。这时候使用子查询只需要编写一条sql语句就可以完成任务,从而降低了网络开销。
相关文档:
1. 在oracle 下创建表
t_user(
ID varchar(20),
Name varchar(20)
)
2. 添加数据
&nb ......
本人以前整理的数据库文件迁移过程,希望能够对大家有所帮助
1、sqlplus "sys/sys@服务名 as sysdba"
2、修改控制文件:
alter system set control_files='E:\oracle\oradata\myOracle_1\control01.ctl',
'E:\oracle\oradata\myOracle_1\control02.ctl','E:\oracle\oradata\my ......
如何远程判断Oracle数据库的安装平台
select * from v$version;
查看表空间的使用情况
select sum(bytes)/(1024*1024) as free_space,tablespace_name
from dba_free_space
group by tablespace_name;
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTE ......
create or replace procedure getok
as
cursor mycur is select ids,name from aaa where name not in (select names from ok);
vempno aaa.ids%type;
vename aaa.name%type;
begin
open mycur;
loop
fetch mycur into vempno,vename;
exit when mycur%notfound;
if mycur%found then
insert ......
Oracl 数据库也没有个半段表是否存在,存在则删除的语句,经过研究和改写他人的方法先隆重推出绝对能用性的Oracle判断表是否存在,存在则删除方法,在Oracle10g上试验通过。
方法
CREATE OR REPLACE FUNCTION PROC_NAME(T_NAME IN VARCHAR2) RETURN NUMBER IS
V_CNT number;
V_SQL VARCHAR2(100);
......