oracle数据库

oracle的序列sequence

笑着哭i 提交于 2020-03-03 06:24:22
一、序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。 二、创建序列 创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下:   CREATE SEQUENCE 序列名   [INCREMENT BY n]   [START WITH n]   [{MAXVALUE/ MINVALUE n| NOMAXVALUE}]   [{CYCLE|NOCYCLE}]   [{CACHE n| NOCACHE}]; 其中: 1) INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。 2) START WITH 定义序列的初始值(即产生的第一个值),默认为1。 3) MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。 4) MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是

oracle11g rac RMAN备份恢复至单机

帅比萌擦擦* 提交于 2020-03-03 00:25:01
在一节点上进行全备 确定备份路径,并赋予属组 mkdir /rmanbackup chown oracle:oinsatll /rmanbackup 进入rman进行全备 rman target / run { allocate channel d1 type disk; backup incremental level 0 format '/rmanbackup/orcl_full_%U' database include current controlfile; delete noprompt obsolete; sql 'alter system archive log current'; backup format '/rmanbackup/orcl_arch_full_%U' archivelog all not backed up delete input; crosscheck backup; delete noprompt expired backup; release channel d1; } 将生成的备份传到单机环境 cd /rmanbackup scp * oracle@192.168.100.199:/rmanbackup/ (单机上已备好此路径) 创建pfile文件并修改传送到单机环境对应目录下 SQL> create pfile='

免安装Oracle客户端使用PL/SQL连接Linux Oracle 注意事项

試著忘記壹切 提交于 2020-03-02 21:13:52
免安装 Oracle 客户端使用 PL/SQL 连接 Linux Oracle 注意事项 关于免安 oracle 客户端使用 pl/sql 连接 oracle ,请查我的另一篇文章 http://blog.csdn.net/zwxrain/archive/2008/07/16/2663464.aspx 连接 Linux 下的 oracle 有一个注意事项,就是 在 ADMIN 内建立 tnsnames.ora 文件,这个文件是连接数据库的配置文件,我们连接每个 oracle 数据库的配置内容都在这里。但我却发现 , 连接 windows oracle 与连接 Linux Oracle 有一点不同,具体如下: 配置内容 1. tnsnames.ora # TNSNAMES.ORA Network Configuration File: C:/oracle/ora90/NETWORK/ADMIN/tnsnames.ora # Generated by Oracle configuration tools. WINDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.31)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = DEVDB)

oracle数据库之子查询

匆匆过客 提交于 2020-03-02 20:41:31
子查询也叫内部查询 , 在主查询之前执行一次 并 得到结果 , 此结果一般情况下,是用来当做是主查询的条件。 -- 在 emp 表中,找出工资比 ALLEN 的高? -- 先查出 ALLEN 的工资是多少? select sal from scott.emp where ename = 'ALLEN'; -- 1600 -- 然后再做比较 select * from scott.emp where sal > 1600; -- 整合 select * from scott.emp where sal > (select sal from scott.emp where ename = 'ALLEN'); -- 当我们做了子查询之后,会出现多行数据 -- 如果想要做多行比较 -- in :与列表中的任何一个值相等,简单理解,只要在指定范围内即可 -- any :与子查询返回的 任意一个可能的 值进行比较。 -- all :与子查询返回的所有值进行比较。 -- in 相当于使用 = 号 select * from scott.emp where sal in (select sal from scott.emp where ename = 'ALLEN'); -- 使用子查询方式实现多表查询 select * from ( select deptno, count(*), sum

Oracle数据库实现获取前几条数据的方法

六月ゝ 毕业季﹏ 提交于 2020-03-02 20:38:14
如何在Oracle 数据库 中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法。本文将告诉您答案,举例说明了哟! 1.在 Oracle 中实现SELECT TOP N : 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。 简单地说,实现方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名1...列名n  FROM 表名ORDER BY 列名1...列名n) WHERE ROWNUM <= N(抽出记录数) ORDER BY ROWNUM ASC 下面举个例子简单说明一下。 顾客表customer(id,name)有如下数据: ID NAME 01 first 02 Second 03 third 04 forth 05 fifth 06 sixth 07 seventh 08 eighth 09 ninth 10 tenth 11 last 则按NAME的字母顺抽出前三个顾客的SQL语句如下所示: SELECT * FROM (SELECT * FROM CUSTOMER ORDER BY NAME) WHERE ROWNUM <= 3 ORDER BY ROWNUM ASC 输出结果为: ID NAME 08

springBoot 整合 mybatis+Oracle

丶灬走出姿态 提交于 2020-03-02 18:46:05
  现在比较流行的操作数据库操作层框架Mybatis,下面我们就来看看Springboot如何整合mybatis, 之前一直在用xml形式写sql,这次依然用xml的方式感觉这种还是比较灵活方便。   添加mybatis关键就是要引入mybatis-spring-boot-starter到pom文件中,如果你用MySQL,那就引入MySQL的pom文件,这里我用Oracle,淡然要引入Oracle的依赖了。添加完成mybatis和Oracle 在pom.xml 文件中的引入。 <!-- 链接Oracle数据库 oracle ojdbc不免费,需要手动引入jar包 --> <dependency> <groupId>oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- 集成mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId>

ORACLE编译失效对象小结

我只是一个虾纸丫 提交于 2020-03-02 15:29:25
在日常数据库维护过程中,我们会发现数据库中一些对象(包Package、存储过程Procedure、函数Function、视图View、同义词.....)会失效,呈现无效状态(INVALID)。有时候需要定期检查数据库中存在哪些失效对象,对于存在异常的对象需要重新编译,有些自动失效的对象,一般会在下次调用的时候,会被重新编译,所以这些不需要人工干预。那么为什么对象突然会失效呢?又如何快速、高效的编译失效对象呢?哪些失效的对象不需要我们去重新编译呢? 数据库对象失效原因 数据库对象失效的原因很多,下面大致归纳了一些常见的原因(有些漏掉的,希望大家补充): 1: 当被引用对象的结构变更时,都会使得相关的依赖对象转变为INVALID状态。 数据库中的对象(存储过程,函数,包,视图,触发器),它们往往需要直接或者间接的引用其它对象,对象的依赖包括直接和间接二种,其中直接依赖是指存储对象直接依赖于被引用对象,而间接依赖是指对象间接依赖于被引用对象 要查看被引用的对象,可以通过下面SQL查看 select * from dba_dependencies where name='&objectname'; select * from all_dependencies where name='&objectname'; select * from user_dependencies where

数据库-Oracle学习笔记(4)

≯℡__Kan透↙ 提交于 2020-03-02 15:07:58
Oracle字符串操作 字符串类型:char类型和varchar2类型 char类型 char类型存放的是定长字符,存不满补空格; char最大取值是2000字节,也就是最多保存2000个英文字符,1000个汉字; char可以不指定长度,默认为1,例如loc char等价于loc char(1)。 varchar2类型 varchar2类型存放的是变长字符,存多少占用多少; varchar2最大取值是4000字节,也就是最多保存4000个英文字符,2000个汉字; varchar2必须指定长度,如果loc varchar2这样写是错误的。 字符串函数 concat和 || 函数 语法1:concat(str1,str2),将两个字符串进行连接 concat(‘a’,’b’) -->’ab’ select * from emp; 查询表中所有列 select ename, sal from emp; 查询表中ename列,和sal列 select concat(ename, '的工资是:') from emp; -->SMITH的工资是: SMITH的工资是: sal ---> SMITH的工资是800 select concat(concat(ename,'的工资是:'), sal) from emp; 语法2: || 等价于concat函数,str1 || str2

orcale 数据的使用

流过昼夜 提交于 2020-03-02 13:17:38
启动 1.#su - oracle 切换到 oracle 用户且切换到它的环境 2.$lsnrctl status 查看监听及数据库状态 3.$lsnrctl start 启动监听 4.$sqlplus / as sysdba 以 DBA 身份进入 sqlplus 5.SQL>startup 启动 db 停止 1.#su - oracle 切换到 oracle 用户且切换到它的环境 2.$lsnrctl stop 停止监听 3.$sqlplus / as sysdba 以 DBA 身份进入 sqlplus 4.SQL>SHUTDOWN IMMEDIATE 关闭 db 查看Oracle 的监听 netstat -plntu 修改用户密码以及用户被锁定 1,首先进入服务器切换到sqlplus / as sysdba 修改密码 SQL>alter user 用户名 identified by 密码 用户被锁定,解锁 ALTER USER 用户名 ACCOUNT UNLOCK; 安装oracle数据步骤: https://blog.csdn.net/u012007592/article/details/83503229 安装完数据库,通过dbca命令来进行。 oracle18c 数据库已经发布,在安装Oracle 18c数据库之后,客户端目前一般还是停留在10G、11G

Debian配置Oracle 10g自启动

梦想的初衷 提交于 2020-03-02 08:34:08
linux平台下默认安装的oracle 10g数据库是没有启动而且不会随系统自动启动的。 配置oracle 10g数据库自启动的步骤如下: 1、配置/etc/oratab 文件 oratab文件中项的格式为 $ORACLE_SID:$ORACLE_HOME:N|Y 每个$ORACLE_SID只能有一个项 默认安装后,入口项的最后是N,将N修改为Y,使其可以通过dbstart工具启动 2、配置$Oracle_HOME/bin/dbstart文件 将dbstart文件中大约78行的ORACLE_HOME_LISTNER变量的值修改为$ORACLE_HOME所在的路径,此处为 ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1 3、运行dbstart,dbshut测试数据库是否正确启动和关闭 以oracle用户登陆,执行以下命令进行测试 $ dbstart $ ps aux | grep ora_ $ ps aux | grep LISTEN $ lsnrctl status $ dbshut 数据库启动的日志文件为$ORACLE_HOME/startup.log,关闭的日志文件为$ORACLE_HOME/shutdown.log,监听器的日志文件$ORACLE_HOME/listener.log 4、创建启动init脚本