Posts

Showing posts with the label Oracle Operation

Oracle RAC Virtual Box+Oracle Linux 5.5搭建

以下测试并未完成RAC搭建,由于硬件条件有限,只进行到GRID搭建。   1. 软件准备: a. Oracle Linux 5.5 b. Virtual Box (> 3.2.8) c. Oracle 11g Release 2(11.2) 64bit d. Linux.x64_11gr2_grid e. oracleasmlib-2.0.4-1.el5.x86_64.rpm ( http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html ) f. IP 地址分配:    rac1            12.11.0.113    rac2            12.11.0.114    rac1-priv    12.11.0.115    rac2-priv    12.11.0.116    rac1-vip      12.11.0.117    rac2-vip      12.11.0.118    rac-scan      12.11.0.119    rac-scan      12.11.0.120    rac-scan       12.11.0...

ORACLE command reverse

1. 下载rlwrap包: http://linux.softpedia.com/get/Terminals/rlwrap-16437.shtml   2. 上传到服务器 3. 使用LINUX 安装 盘安装readline yum install readline yum install readline-devel   4. 解压缩tar xvf rlwrap-0.37.tar.gz   5. 安装: ./configure make make check make install   6. 修改oracle配置文件.bash_profile su - oracle vi .bash_profile 添加如下: alias sqlplus='rlwrap sqlplus' alian rman='rlwrap rman'   7. 退出后重新登录 在sqlplus和rman中均可以使用方向键实现翻屏。

ORACLE 语句类型

语句类型: 1.DDL (Data Definition Language )数据库定义语言 statements are used to define the database structure or schema. DDL不需要commit. CREATE/ALTER/DROP/TRUNCATE/COMMENT/RENAME 2.DML (Data Manipulation Language)数据操纵语言 statements are used for managing data within schema objects. 需要commit. INSERT/UPDATE/DELETE/MERGE/CALL/EXPLAIN PLAN/LOCK TABLE 3.DCL(Data Control Language)数据库控制语言  授权,角色控制等 GRANT/REVOKE 4.TCL(Transaction Control Language)事务控制语言 SAVEPOINT 设置保存点/ROLLBACK  回滚/SET TRANSACTION

ORACLE 预定义异常

Image
例子: create or replace procedure test(id in varchar2, name out varchar2) is begin   DBMS_OUTPUT.PUT_LINE('进程开始运行');   select ename into name from emp where empno = id;   DBMS_OUTPUT.PUT_LINE('NANE:' || name); exception   when NO_DA TA_FOUND then     DBMS_OUTPUT.PUT_LINE('没有找到相关数据'); end test;

ORALCE Trigger

1.利用触发器监控对特定表插入,删除,修改操作; create or replace trigger tri_test1   after insert or update or delete on emp   for each row --是否需要针对每条操作的数量做关注; begin   if  inserting then   insert into log values (user,'EMP',sysdate,'Insert');   elsif updating then   insert into log values (user,'EMP',sysdate,'Update');   else   insert into log values (user,'EMP',sysdate,'Delete');   end if; end tri_test1; 2. 利用触发器对两张表组成的视图进行更新 create or replace trigger tri_test   instead of insert on v_test1   for each row declare   -- local variables here begin   insert into emp(empno,ename) values (:new.empno,:new.ename);   insert into dept(deptno,dname) values (:new.deptno,:new.dname); end tri_test; 3. 利用触发器针对删除操作对相关表进行操作 create or replace trigger tri_test2   after delete on dept   for each row declare   -- local variables here begin   delete from emp where deptno = :old.deptno; end tri_test2; 实用样例: 要求: 我有一个表app...

ORLACE 数据库实例服务没有了

1. 运行command窗口; 2. oradim -delete -sid  demo  删除数据库服务项  DIM-00010: SYSTEM\\CurrentControlSet\\Services\\OracleService 键不存在  O/S-Error: (OS 2) 系统找不到指定的文件。  忽略不管。 3. oradim -new -sid  demo  新增数据库服务项  成功。登录,但是报ORA-01034: ORACLE not available。  4. 使用dba帐号登录sqlplus可以了。然后startup。就ok了。

ORACLE 客户端查询结果显示乱码

客户端 1. 将客户端操作系统修改成支持中文字符; 2. 将ORACLE客户端和客户端操作系统改成一致。 服务器端 将ORACLE数据库字符集设置成UNICODE,相对兼容。

ORACLE 连接远端数据库

1. 在服务器端确认数据库服务:实例,listener,登录; 2. 在服务器端使用net manager配置服务命名; 或者直接把服务器上tnsnames.ora的内容复制到本地。 如果配置为主机名,可以通过命令:ping 主机名是否能够解析; 如果不能需修改本地hosts文件  3. 配置完成后,确认测试连接是否成功。(特别注意用户名密码是否正确,因为AIX服务器上登录可能不验证)

ORACLE 屏显

屏幕输出: set serveroutput on; DBMS_OUTPUT.PUT_LINE('显示内容'); 或者 set serveroutput on; DMBS_OUTPUT.PUT(‘显示内容'); DMBS_OUTPUT.VIEW_LINE; dbms_output.put_line每行只能显示255个字符,超过了就会报错,报错内容如下: ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line 解决方法:DBMS_OUTPUT.ENABLE (buffer_size IN INTEGER DEFAULT 20000);

ORACLE 通配符

默认通配符 : %:任意长度任意字符; _:一个任意字符; 换码符 : 1. ESCAPE: 换码符,本例中'\'为换码符,它后面的就是字面意思 例如: SELECT employee_id, last_name, job_id FROM   employees WHERE  job_id LIKE '%SA\_%' ESCAPE '\'; 2. q'[ content ]' content中的特殊字符含义被去掉。 例如: select department_name||q'['s manager]'||mananger_name from department;

ORACLE 文本处理函数

CONCAT(column1|expression1,column2|expression2):相当于|| SUBSTR(column|expression,m[,n]):返回字符串字符,从第m个字符开始,长度为n个字符;m为负数,则从末尾开始,省略n,则返回一直到末尾的所有字符 INSTR(column|expression,'string',[,m],[n]):返回指定字符串的数字位置。m:开始搜索的位置;n:字符串出现次数;m和n默认为1 INITCAP:将每个单词第一个字母转换为大写,其余字母保留小写 LPAD(column|expression, n, 'string'):将字符值按右对齐排列,然后左侧填充字符,以使总字符宽度为n RPAD(column|expression, n, 'string'):将字符值按左对齐排列,然后右侧填充字符,以使总字符宽度为n TRIM(leading|trailing|both, trim_character FROM trim_source):从字符串trim_source截取头部,尾部或者两头的字符trim_character 特殊用法:SELECT LOWER(TRIM('H' FROM 'HelloWorld')) FROM dual; ROUND(column|expression,n):将列,表达式或者值进行四舍五入,保留n个小数位;n为负数,将四舍五入小数点左边;n默认为0 TRUNC(column|expression,n):将列,表达式或者值进行截取,保留n个小数位;n为负数,将截取小数点左边;n默认为0

ORACLE TO_CHAR

TO_CHAR日期格式: YYYY:数字表示完整年份; YEAR:用字母拼写年份; MM:两位数值月份; MONTH:月份全名; MON:月份三个字母缩写; DY:星期几的三个字母缩写; DAY:星期几全名; DD:数字表示月份中某日 TO_CHAR数字格式: 9:代表一个数字,个数代表位数; 0:强制显示0,用于前导; $:放置美元符号; L:使用当地货币符号; .:显示小数点; ,:显示千位指示符;

ORACLE SQL Plus

SQLPLUS 模式下查询文件内容:v$controlfile / v$datafile / v$logfile SQLPLUS 模式下帮助:help index SQLPLUS 模式下执行文件sql:@文件 SQLPLUS 模式下查看文件sql:get 文件 edit修改的脚本以“/”作为结束符 sql文件脚本和屏幕输入脚本以“;”作为结束符 显示设置: 1. 转换过程是否显示:set verify on/off 2. 总结句是否显示:set feedback on/off 3. 标题栏是否显示:set heading on/off 4. 执行sql文件时脚本是否显示:set echo on/off 5. 定义换页行数:set pages 100 确定编辑工具(Linux system)define _editor = vi 按回格键backspace出现乱码须使用root用户执行(Linux system)stty erase  乱码内容 例如:stty erase ^? 使用“/”调用上一条SQL命令 &引导变量:提示用户输入值; DEFINE:定义变量; UNDEFINE:清除变量 &&替代变量:只是提示输入一次 &替代变量:每次运行都需要输入 '&替代变量':在where条件中日期和字符值使用替代变量需要用单引号

ORACLE group by 可用函数

 AVG:平均值; COUNT:行数; MAX:最大值; MIN:最小值; STDDEV:标准偏差; SUM:总计; VARIANCE:方差; 分组会忽略null值

ORACLE 空值处理

 NVL(expr1,expr2):如果expr1为空值转换成expr2的值;(第一个和第二个参数需要类型一致) 例如: column name:a1 type:varchar2(10) NVL(a1,'is null') NVL2(expr1,expr2,expr3):如果expr1为非空值,转换成expr2;若为空值,转换成expr3; NULLIF(expr1,expr2):将两个表达式进行比较,如果相等,则返回空值,如果不相等,则返回第一个表达式; COALESCE(expr1,expr2.....,exprn):返回第一个非空表达式; update 语句中将某列设置成null,列名=null 例如:update employees set first_name = null where ....

ORACLE 子查询返回

多行返回 : IN/ANY/ALL >ANY:高于最低值; <ANY:低于最高值; =ANY:IN <ALL:低于最低值; >ALL:高于最高值; 单行返回: >、<、=、<> .....

ORACLE 索引

创建索引条件 1.列包含较大范围的值; 2.列包含大量空值; 3.在WHERE字句或联结条件中频繁使用一个或多个列 4.表相当大,但是预计多数的查询检索的行不到总行数的百分之二至百分之四

ORACLE 数据库删除

1.DBCA图形化界面删除,将删除数据库的数据文件、重做日志文件、控制文件、和初始化参数文件; 2.使用DROP DATABASE删除,效果相同,但是有前提: a.数据库必须已装载且已关闭;----------------->SQL>shutdown immediate; b.必须以独占方式而不是共享方式装载数据库;--->SQL>startup mount; c.数据库必须装载为RESRICTED.---------------->SQL>alter system enable restricted session;

ORACLE 简便连接

简便连接: <username>/<password>@<hostname>:<listener port>/<service name>

ORACLE 参数resetlog何时使用

主要是数据文件头跟控制文件里记录 select file#,checkpoint_change# from v$datafile; select file#,checkpoint_change# from v$datafile_header; 如果scn 不一致.