Oracle学习(一):基本操作和基本查询语句

简介: 本文主要讲Oracle基本操作和基本查询语句

文中以"--"开头的语句为注释,即为绿色部分


1.知识点:可以对照下面的录屏进行阅读


SQL> --录屏工具spool,开始录制,并指定保存路径为c:\基本查询.txt 
SQL>spool c:\基本查询.txt 
SQL> --清屏
SQL> host cls
SQL> --查看当前用户
SQL> show user
USER 为 "SCOTT"
SQL> --查询当前用户下的表
SQL> select * from tab;
SQL> -- tab数据字典(管理员提供的表)
SQL> desc emp
SQL> --查询所有员工的所有信息
SQL> select * from emp;
SQL> --设置行宽,只用于使显示表看的更直观
SQL> set linesize 120
SQL> --设置列宽,只用于使显示表看的更直观
SQL> col ename for a8  --设置ename为8个字符的长度
SQL> col sal for 9999  --设置sal为4个数字的单位
SQL> --执行上条SQL语句
SQL> /  
SQL> --通过列名查询
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno
  2  from emp;  --数字2为第二行,好的sql语句应该有清晰的分行
SQL> --SQL优化: 1. 尽量使用列名代替*,Oracle 9i之后,可以认为是一样 
SQL> --修改错误的两种方法:
SQL> --第一种方法:c命令(全称change),用来修改sql语句
SQL> 2      -- 定位要修改的位置为上一条SQL语句的第二行 
  2* fomr emp --显示定位的SQL语句 
SQL> c /fomr/from   --将fomr改为from
  2* from emp -- 修改后的SQL语句 
SQL> /    --执行修改后的SQL语句 
SQL> --第二种方法:ed命令直接进入记事本编辑SQL语句页面
SQL> ed   --进入记事本编辑SQL语句页面
已写入 file afiedt.buf   --直接在这个记事本上修改,完了关闭记事本,记事本的内容自动写到sqlplus窗口
  1  select empno as "员工号",ename "姓名",sal 月薪,sal*12 年   薪 --此行和下一行是关闭记事本后,自动写到窗口的内容
  2* from emp   --带*号为在记事本中修改过的内容
SQL> --SQL语句中如果别名中有空格或关键字必须加双引号
SQL> select empno as "员工号",ename "姓名",sal 月薪,sal*12  年   薪    --报错,别名有空格 
SQL> select empno as "员工号",ename "姓名",sal 月薪,sal*12  “年   薪”  -- 正确,别名有空格 ,但使用了双引号
SQL>--SQL中null值:1. 包含null的表达式都为null;2. SQL中,null != null 
SQL>--1.包含null的表达式都为null,当comm为空时,不管sal是否有值都为空
SQL> select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+comm 年收入
SQL> --2. SQL中,null != null,查询奖金(comm)为null的员工,但实现结果为“未选定行”,即没有结果
SQL> select *
  2  from emp
  3  where comm=null;
SQL> --将2中的SQL语句改为comm is null后正常显示结果
SQL> ed
已写入 file afiedt.buf
  1  select *
  2  from emp
  3* where comm is null
SQL> --空值是无效的,未指定的,未知的或不可预知的值。
SQL> --空值不是空格或者0.
SQL> --DISTINCT:1、去掉重复的记录;2、作用于后面所有的列
SQL> select DISTINCT deptno,job from emp;
SQL> --concat 连接字符串
SQL> select concat('Hello',' World') from emp;
SQL> --dual表: 伪表,当查询目标不是一个具体表时,from都写dual
SQL> select 3+2 from dual;
SQL> --连接符” || ”,用来拼接字符串
SQL> --查询员工信息:  ****的薪水是****
SQL> select ename||'的薪水是'||sal  
  2  from emp;
SQL>--保存上一条SQL语句到指定路径
SQL> save c:\a.sql 
已创建 file c:\a.sql
SQL>--从指定路径加载sql语句,并执行,如果只加载不执行使用load
SQL> @c:\a.sql  
SQL>--录屏工具:spool off  结束录制,并保存到之前指定的路径”c:\基本查询.txt ”
SQL> spool off

2.在Sqlplus下实际执行的结果录屏:


SQL> --清屏
SQL> host cls
SQL> --查看当前用户
SQL> show user
USER 为 "SCOTT"
SQL> 
SQL> 
SQL> --当前用户下的表
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID                               
------------------------------ ------- ----------                               
DEPT                           TABLE                                            
EMP                            TABLE                                            
BONUS                          TABLE                                            
SALGRADE                       TABLE                                            
SQL> -- tab数据字典(管理员提供的表)
SQL> desc emp
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)
SQL> --查询所有员工的所有信息
SQL> select * from emp;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 
---------- ---------- --------- ---------- -------------- ---------- ---------- 
    DEPTNO                                                                      
----------                                                                      
      7369 SMITH      CLERK           7902 17-12月-80            800            
        20                                                                      
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300 
        30                                                                      
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500 
        30                                                                      
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 
---------- ---------- --------- ---------- -------------- ---------- ---------- 
    DEPTNO                                                                      
----------                                                                      
      7566 JONES      MANAGER         7839 02-4月 -81           2975            
        20                                                                      
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400 
        30                                                                      
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850            
        30                                                                      
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 
---------- ---------- --------- ---------- -------------- ---------- ---------- 
    DEPTNO                                                                      
----------                                                                      
      7782 CLARK      MANAGER         7839 09-6月 -81           2450            
        10                                                                      
      7788 SCOTT      ANALYST         7566 13-7月 -87           3000            
        20                                                                      
      7839 KING       PRESIDENT            17-11月-81           5000            
        10                                                                      
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 
---------- ---------- --------- ---------- -------------- ---------- ---------- 
    DEPTNO                                                                      
----------                                                                      
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0 
        30                                                                      
      7876 ADAMS      CLERK           7788 13-7月 -87           1100            
        20                                                                      
      7900 JAMES      CLERK           7698 03-12月-81            950            
        30                                                                      
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 
---------- ---------- --------- ---------- -------------- ---------- ---------- 
    DEPTNO                                                                      
----------                                                                      
      7902 FORD       ANALYST         7566 03-12月-81           3000            
        20                                                                      
      7934 MILLER     CLERK           7782 23-1月 -82           1300            
        10                                                                      
已选择14行。
SQL> --设置行宽
SQL> set linesize 120
SQL> --设置列宽
SQL> col ename for a8
SQL> col sal for 9999
SQL> /
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                     
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                     
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                     
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                     
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                     
      7788 SCOTT    ANALYST         7566 13-7月 -87      3000                    20                                     
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                     
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                     
      7876 ADAMS    CLERK           7788 13-7月 -87      1100                    20                                     
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                     
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                     
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                     
已选择14行。
SQL> --通过列名查询
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno
  2  from emp;
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                     
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                     
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                     
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                     
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                     
      7788 SCOTT    ANALYST         7566 13-7月 -87      3000                    20                                     
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                     
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                     
      7876 ADAMS    CLERK           7788 13-7月 -87      1100                    20                                     
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                     
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                     
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                     
已选择14行。
SQL> /*
SQL> SQL优化:
SQL> 1. 尽量使用列名代替*
SQL>       Oracle 9i之后,可以认为是一样
SQL> */
SQL> host cls
SQL> --查询员工号 姓名 月薪
SQL> select empno,ename,sal
  2  fomr emp;
fomr emp
     *
第 2 行出现错误: 
ORA-00923: 未找到要求的 FROM 关键字 
SQL> --c命令  change
SQL> 2
  2* fomr emp
SQL> c /fomr/from
  2* from emp
SQL> /
     EMPNO ENAME      SAL                                                                                               
---------- -------- -----                                                                                               
      7369 SMITH      800                                                                                               
      7499 ALLEN     1600                                                                                               
      7521 WARD      1250                                                                                               
      7566 JONES     2975                                                                                               
      7654 MARTIN    1250                                                                                               
      7698 BLAKE     2850                                                                                               
      7782 CLARK     2450                                                                                               
      7788 SCOTT     3000                                                                                               
      7839 KING      5000                                                                                               
      7844 TURNER    1500                                                                                               
      7876 ADAMS     1100                                                                                               
     EMPNO ENAME      SAL                                                                                               
---------- -------- -----                                                                                               
      7900 JAMES      950                                                                                               
      7902 FORD      3000                                                                                               
      7934 MILLER    1300                                                                                               
已选择14行。
SQL>  --查询员工号 姓名 月薪 年薪
SQL> select empno,ename,sal,sal*12
  2  from emp;
     EMPNO ENAME      SAL     SAL*12                                                                                    
---------- -------- ----- ----------                                                                                    
      7369 SMITH      800       9600                                                                                    
      7499 ALLEN     1600      19200                                                                                    
      7521 WARD      1250      15000                                                                                    
      7566 JONES     2975      35700                                                                                    
      7654 MARTIN    1250      15000                                                                                    
      7698 BLAKE     2850      34200                                                                                    
      7782 CLARK     2450      29400                                                                                    
      7788 SCOTT     3000      36000                                                                                    
      7839 KING      5000      60000                                                                                    
      7844 TURNER    1500      18000                                                                                    
      7876 ADAMS     1100      13200                                                                                    
     EMPNO ENAME      SAL     SAL*12                                                                                    
---------- -------- ----- ----------                                                                                    
      7900 JAMES      950      11400                                                                                    
      7902 FORD      3000      36000                                                                                    
      7934 MILLER    1300      15600                                                                                    
已选择14行。
SQL> ed
已写入 file afiedt.buf
  1  select empno as "员工号",ename "姓名",sal 月薪,sal*12 年   薪
  2* from emp
SQL> /
select empno as "员工号",ename "姓名",sal 月薪,sal*12 年   薪
                                                           *
第 1 行出现错误: 
ORA-00923: 未找到要求的 FROM 关键字 
SQL> ed
已写入 file afiedt.buf
  1  select empno as "员工号",ename "姓名",sal 月薪,sal*12 "年   薪"
  2* from emp
SQL> /
    员工号 姓名             月薪    年   薪                                                                             
---------- ---------- ---------- ----------                                                                             
      7369 SMITH             800       9600                                                                             
      7499 ALLEN            1600      19200                                                                             
      7521 WARD             1250      15000                                                                             
      7566 JONES            2975      35700                                                                             
      7654 MARTIN           1250      15000                                                                             
      7698 BLAKE            2850      34200                                                                             
      7782 CLARK            2450      29400                                                                             
      7788 SCOTT            3000      36000                                                                             
      7839 KING             5000      60000                                                                             
      7844 TURNER           1500      18000                                                                             
      7876 ADAMS            1100      13200                                                                             
    员工号 姓名             月薪    年   薪                                                                             
---------- ---------- ---------- ----------                                                                             
      7900 JAMES             950      11400                                                                             
      7902 FORD             3000      36000                                                                             
      7934 MILLER           1300      15600                                                                             
已选择14行。
SQL> host cls
SQL>  --查询员工号 姓名 月薪 年薪 年收入
SQL> select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+comm 年收入
  2  from emp;
     EMPNO ENAME      SAL       年薪       奖金     年收入                                                              
---------- -------- ----- ---------- ---------- ----------                                                              
      7369 SMITH      800       9600                                                                                    
      7499 ALLEN     1600      19200        300      19500                                                              
      7521 WARD      1250      15000        500      15500                                                              
      7566 JONES     2975      35700                                                                                    
      7654 MARTIN    1250      15000       1400      16400                                                              
      7698 BLAKE     2850      34200                                                                                    
      7782 CLARK     2450      29400                                                                                    
      7788 SCOTT     3000      36000                                                                                    
      7839 KING      5000      60000                                                                                    
      7844 TURNER    1500      18000          0      18000                                                              
      7876 ADAMS     1100      13200                                                                                    
     EMPNO ENAME      SAL       年薪       奖金     年收入                                                              
---------- -------- ----- ---------- ---------- ----------                                                              
      7900 JAMES      950      11400                                                                                    
      7902 FORD      3000      36000                                                                                    
      7934 MILLER    1300      15600                                                                                    
已选择14行。
SQL> /*
SQL> SQL中null值:
SQL> 1. 包含null的表达式都为null
SQL> 2. SQL中,null != null
SQL> */
SQL> ed
已写入 file afiedt.buf
  1  select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+nvl(comm,0) 年收入
  2* from emp
SQL> /
     EMPNO ENAME      SAL       年薪       奖金     年收入                                                              
---------- -------- ----- ---------- ---------- ----------                                                              
      7369 SMITH      800       9600                  9600                                                              
      7499 ALLEN     1600      19200        300      19500                                                              
      7521 WARD      1250      15000        500      15500                                                              
      7566 JONES     2975      35700                 35700                                                              
      7654 MARTIN    1250      15000       1400      16400                                                              
      7698 BLAKE     2850      34200                 34200                                                              
      7782 CLARK     2450      29400                 29400                                                              
      7788 SCOTT     3000      36000                 36000                                                              
      7839 KING      5000      60000                 60000                                                              
      7844 TURNER    1500      18000          0      18000                                                              
      7876 ADAMS     1100      13200                 13200                                                              
     EMPNO ENAME      SAL       年薪       奖金     年收入                                                              
---------- -------- ----- ---------- ---------- ----------                                                              
      7900 JAMES      950      11400                 11400                                                              
      7902 FORD      3000      36000                 36000                                                              
      7934 MILLER    1300      15600                 15600                                                              
已选择14行。
SQL> --2. SQL中,null != null
SQL> --查询奖金为null的员工
SQL> select *
  2  from emp
  3  where comm=null;
未选定行
SQL> ed
已写入 file afiedt.buf
  1  select *
  2  from emp
  3* where comm is null
SQL> /
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                     
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                     
      7788 SCOTT    ANALYST         7566 13-7月 -87      3000                    20                                     
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                     
      7876 ADAMS    CLERK           7788 13-7月 -87      1100                    20                                     
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                     
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                     
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                     
已选择10行。
SQL> host cls
SQL> --DISTINCT 去掉重复的记录
SQL> select deptno from emp;
    DEPTNO                                                                                                              
----------                                                                                                              
        20                                                                                                              
        30                                                                                                              
        30                                                                                                              
        20                                                                                                              
        30                                                                                                              
        30                                                                                                              
        10                                                                                                              
        20                                                                                                              
        10                                                                                                              
        30                                                                                                              
        20                                                                                                              
    DEPTNO                                                                                                              
----------                                                                                                              
        30                                                                                                              
        20                                                                                                              
        10                                                                                                              
已选择14行。
SQL> select DISTINCT deptno from emp;
    DEPTNO                                                                                                              
----------                                                                                                              
        30                                                                                                              
        20                                                                                                              
        10                                                                                                              
SQL> select job from emp;
JOB                                                                                                                     
---------                                                                                                               
CLERK                                                                                                                   
SALESMAN                                                                                                                
SALESMAN                                                                                                                
MANAGER                                                                                                                 
SALESMAN                                                                                                                
MANAGER                                                                                                                 
MANAGER                                                                                                                 
ANALYST                                                                                                                 
PRESIDENT                                                                                                               
SALESMAN                                                                                                                
CLERK                                                                                                                   
JOB                                                                                                                     
---------                                                                                                               
CLERK                                                                                                                   
ANALYST                                                                                                                 
CLERK                                                                                                                   
已选择14行。
SQL> select DISTINCT job from emp;
JOB                                                                                                                     
---------                                                                                                               
CLERK                                                                                                                   
SALESMAN                                                                                                                
PRESIDENT                                                                                                               
MANAGER                                                                                                                 
ANALYST                                                                                                                 
SQL> select DISTINCT deptno,job from emp;
    DEPTNO JOB                                                                                                          
---------- ---------                                                                                                    
        20 CLERK                                                                                                        
        30 SALESMAN                                                                                                     
        20 MANAGER                                                                                                      
        30 CLERK                                                                                                        
        10 PRESIDENT                                                                                                    
        30 MANAGER                                                                                                      
        10 CLERK                                                                                                        
        10 MANAGER                                                                                                      
        20 ANALYST                                                                                                      
已选择9行。
SQL> --DISTINCT作用于后面所有的列
SQL> host cls
SQL> --concat 连接字符串
SQL> select concat('Hello',' World') from emp;
CONCAT('HEL                                                                                                             
-----------                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
CONCAT('HEL                                                                                                             
-----------                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
Hello World                                                                                                             
已选择14行。
SQL> select concat('Hello',' World') from dual;
CONCAT('HEL                                                                                                             
-----------                                                                                                             
Hello World                                                                                                             
SQL> select 3+2 from dual;
       3+2                                                                                                              
----------                                                                                                              
         5                                                                                                              
SQL> --dual表: 伪表
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID                                                                       
------------------------------ ------- ----------                                                                       
DEPT                           TABLE                                                                                    
EMP                            TABLE                                                                                    
BONUS                          TABLE                                                                                    
SALGRADE                       TABLE                                                                                    
SQL> host cls
SQL> --连接符
SQL> select 'Hello'||'  World' from dual;
'HELLO'||'WO                                                                                                            
------------                                                                                                            
Hello  World                                                                                                            
SQL> --查询员工信息:  ****的薪水是****
SQL> select ename||'的薪水是'||sal  一列
  2  from emp;
一列                                                                                                                    
----------------------------------------------------------                                                              
SMITH的薪水是800                                                                                                        
ALLEN的薪水是1600                                                                                                       
WARD的薪水是1250                                                                                                        
JONES的薪水是2975                                                                                                       
MARTIN的薪水是1250                                                                                                      
BLAKE的薪水是2850                                                                                                       
CLARK的薪水是2450                                                                                                       
SCOTT的薪水是3000                                                                                                       
KING的薪水是5000                                                                                                        
TURNER的薪水是1500                                                                                                      
ADAMS的薪水是1100                                                                                                       
一列                                                                                                                    
----------------------------------------------------------                                                              
JAMES的薪水是950                                                                                                        
FORD的薪水是3000                                                                                                        
MILLER的薪水是1300                                                                                                      
已选择14行。
SQL> host cls
SQL> select * from emp;
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                     
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                     
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                     
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                     
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                     
      7788 SCOTT    ANALYST         7566 13-7月 -87      3000                    20                                     
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                     
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                     
      7876 ADAMS    CLERK           7788 13-7月 -87      1100                    20                                     
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                     
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                     
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                     
已选择14行。
SQL> save c:\a.sql
已创建 file c:\a.sql
SQL> @c:\a.sql
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                     
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                     
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                     
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                     
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                     
      7788 SCOTT    ANALYST         7566 13-7月 -87      3000                    20                                     
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                     
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                     
      7876 ADAMS    CLERK           7788 13-7月 -87      1100                    20                                     
     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                     
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                     
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                     
已选择14行。
SQL> spool off
相关文章
|
10月前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有 YashanDB 版本。原因是操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常源于 system() 函数调用失败,返回 -1,通常是因为 fork() 失败。未来 YashanDB 将优化日志信息以更好地诊断类似问题。
|
9月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的闪回版本查询
本文介绍了Oracle数据库的闪回版本查询(Flashback Version Query)功能,通过示例详细讲解了其使用方法。闪回版本查询可获取指定时间区间内行的不同版本,利用`versions between`子句实现。文中包含视频讲解,并通过创建测试表、插入数据及执行查询等步骤,演示如何获取历史版本信息和伪列详情,帮助用户深入了解该功能的实际应用。
193 13
|
8月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回事务查询
Oracle数据库的闪回事务查询(Flashback Transaction Query)是闪回版本查询的扩充,可用于审计或撤销已提交的事务。通过`flashback_transaction_query`视图,可生成还原特定事务的SQL语句。本文介绍了其基本概念,并通过实战演示如何使用该功能:从授权、开启UNDO数据增强,到创建测试表和事务,最后利用闪回查询撤销已提交的事务,验证数据恢复效果。附带视频讲解,帮助深入理解。
212 3
|
9月前
|
Oracle 关系型数据库 Linux
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
|
9月前
|
Oracle 关系型数据库 MySQL
【YashanDB知识库】oracle dblink varchar类型查询报错记录
这篇文章主要介绍了 Oracle DBLINK 查询崖山 DB 报错的相关内容,包括 ODBC 安装配置、数据源配置、dblink 环境配置、问题原因分析及规避方法。问题原因是 dblink 连接其他数据库时 varchar 类型转换导致的,还介绍了 long 类型限制、char 等类型区别,规避方法是修改参数 MAX_STRING_SIZE 支持 32K。
|
10月前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
某客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有版本。问题源于操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常原因为系统调用 fork() 失败。经验总结:优化日志记录,提供更多异常信息。
|
11月前
|
Oracle 关系型数据库 数据库
【YashanDB知识库】oracle dblink varchar类型查询报错记录
在使用Oracle DBLink查询VARCHAR类型数据时,可能会遇到多种报错。通过了解常见错误原因,采取合适的解决方法,可以有效避免和处理这些错误。希望本文提供的分析和示例能帮助你在实际工作中更好地处理DBLink查询问题。
329 10
|
11月前
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
1847 2
|
SQL Oracle 关系型数据库
关系型数据库Oracle并行查询
【7月更文挑战第12天】
401 15