dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下:
1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual;
2、用来调用系统函数
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间
select SYS_CONTEXT('USERENV','TERMINAL') from dual;--获得主机名
select SYS_CONTEXT('USERENV','language') from dual;--获得当前 locale
select dbms_random.random from dual;--获得一个随机数
3、得到序列的下一个值或当前值,用下面语句
select your_sequence.nextval from dual;--获得序列your_sequence的下一个值
select your_sequence.currval from dual;--获得序列your_sequence的当前值
4、可以用做计算器 select 7*9 from dual;
------
Oracle系统中dual表是一个“神秘”的表,网上有很多网友都对该表进行了测试,该表只有一行一列,其实该表和系统中的其他表一样,一样可以执行插入、更新、删除操作,还可以执行dr ......
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。
下面简单介绍一下几个函数的用法。
在介绍这个之前你必须明白什么是oracle中的空值null
1.NVL函数
NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
例如:
SQL> select ename,NVL(comm, -1) from emp;
ENAME NVL(COMM,-1)
——————– ————
SMITH -1
ALLEN 300
WARD 500
JONES -1
MARTIN 1400
BLAKE -1
FORD -1
MILLER -1
其中显示-1的本来的值全部都是空值的
2 NVL2函数
NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。
SQL> select ename,NVL2(comm,-1,1) from emp;
ENAME NVL2(COMM,-1,1)
——————– —&md ......
今天做了1个数据导入需求,文本记录有12万多条,TXT文件大小6M多,因为以前都是用oracle的text import方式导入,刚试验了一下,不灵验,当导入到2万多条的时候,PLSQL就当掉了,走不动了。
因为考虑到1次导入,所有决定采用SQLLOADER的方式。 ......
现在有以下两张表:
表A 员工(EMPLOYEE)
EMP_NO
EMP_NAME
JOB
DEPT_NO
1
1
HXF
PRESIDENT
2
2
2
SCOTT
CLERK
1
3
3
SMITH
SALESMAN
3
4
4
JOHN
MANAGER
&nbs ......
这一章中,我们将分析构成数据库和实例的8 种文件类型。
与实例相关的文件只有:
参数文件(parameter file):这些文件告诉Oracle 实例在哪里可以找到控制文件,并且指
定某些初始化参数,这些参数定义了某种内存结构有多大等设置。我们还会介绍存储数据库参
数文件的两种选择。
跟踪文件(trace file):这通常是一个服务器进程对某种异常错误条件做出响应时创建的诊
断文件。
警告文件(alert file):与跟踪文件类似,但是包含“期望”事件的有关信息,并且通过一
个集中式文件(其中包括多个数据库事件)警告DBA。
构成数据库的文件包括:
数据文件(data file):这些文件是数据库的主要文件;其中包括数据表、索引和所有其他
的段。
临时文件(temp file):这些文件用于完成基于磁盘的排序和临时存储。
控制文件(control file):这些文件能告诉你数据文件、临时文件和重做日志文件在哪里,
还会指出与文件状态有关的其他元数据。
重做日志文件(redo log file):这些就是事务日志。
密码文件(password file):这些文件用于对通过网络完成管理活动的用户进行认证。我们
不打算详细讨论这些文件。
......
Oracle 3 个主要的内存结构:
系统全局区(System Global Area,SGA):这是一个很大的共享内存段,几乎所有Oracle
进程都要访问这个区中的某一点。
进程全局区(Process Global Area,PGA):这是一个进程或线程专用的内存,其他进程/
线程不能访问。
用户全局区(User Global Area,UGA):这个内存区与特定的会话相关联。它可能在SGA
中分配,也可能在PGA 中分配,这取决于是用共享服务器还是用专用服务器来连接数据库。如
果使用共享服务器,UGA 就在SGA 中分配;如果使用专用服务器,UGA 就会在PGA(即进程内存
区)中。
每个Oracle 实例都有一个很大的内存结构,称为系统全局区(System Global Area,SGA)。这是一
个庞大的共享内存结构,每个Oracle 进程都会访问其中的某一点。SGA 的大小不一,在小的测试系统上只
有几MB,在中到大型系统上可能有几百MB,对于非常大的系统,甚至多达几GB。
在Oracle 自身内,则完全可以看到SGA,而不论平台是什么。为此,只需使用另一个神奇的V$视图,
名为V$SGASTAT。它可能如下所示(注意,这个代码并非来自前面的系统;而是来自一个已经适当地配置
了相应特性的系统,从而可以查看所有可用的池):
op ......