PL/SQL Case when应用
Case when应用// 如果column_4 = 'IT_PROG' 那么 输出 1.10 * column_3// 如果column_4 = 'ST_CLERK' 那么 输出 1.15 * column_4// 否则 输出 column_3 使用别名 "REVISED_SALARY"SELECT column_1,column_2,column_3 CASE column_4 WHEN 'IT_PROG' THEN 1.10*column_3 WHEN 'ST_CLERK' THEN 1.15*column_3 WHEN 'SA_REP' THEN 1.20*column_3 ELSE column_3 END "REVISED_SALARY"FROM table_name;// SELECT column_1,column_2, SUM(CASE WHEN column_3 = '100' THEN
ORA-00933 错误与 Union all
ORA-00933 错误与 Union all(2010-08-12 15:55:59) 转载ORA-00933 错误与 Union all2009-05-12 14:18union all 连接的两个结果集,只能最后一个结果集中允许出现order by子句,但是该order by子句对整个结果集都产生影响。步骤一:创建测试表a,bSQL> set autot offSQL> create table a as select rownum as id, rownum as name from dual connect by level < 10;Table created.SQL> create table b as select rownum+5 as id, rownum+5 as name from dual connect by level < 10;Table created.SQL> select * from a;
ORA-01078: failure in processing system parameters
解决oracle 11g 问题之ORA-01078: failure in processing system parameters 昨天刚刚将oracle 11G安装完成,今天想通过sqlplus来连接数据库,在启动oracle时,突然报错:ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/u01/app/oracle/product/11.1.0/db_1/dbs/initDATATEST.ora'[oracle@datatest ~]$ sqlplus "/as sysdba"SQL*Plus: Release 11.1.0.6.0 - Production on Wed Dec 15 10:54:03 2010Copyright (c) 1982, 2007, Oracle. All rights reserved.Connected to an
创建spfile语句
创建spfile语句:create spfile from pfile='C:oracleadminora9ipfileinit.ora.3132010103612'[@more@]
ORA-01102: cannot mount database in EXCLUSIVE mode
ORA-01102: cannot mount database in EXCLUSIVE modeTags: ORA-01102, oracle SQL> conn /as sysdbaConnected to an idle instance.SQL> startuporacle instance started.Total System Global Area 276824064 bytesFixed Size 778736 bytesVariable Size 137371152 bytesDatabase Buffers 138412032 bytesRedo Buffers 262144 bytesORA-01102: cannot mount database in EXCLUSIVE modeSQL> shutdown immediateORA-01507: database not mountedoracle instance shut down.GOOGLE一下,发现是lk<SID>文件造成的,该文件位
ORA-12547 TNS:lost contact
虚拟机上装Enterprise Linux 4后,安装oracle10g,在dbca创建库的时候出现错误:ORA-12547 TNS:lost contact经网上查资料是因为未安装libaio-0.3.93-4.i386.rpm包导致。[@more@]虚拟机上装Enterprise Linux 4后,安装oracle10g,在dbca创建库的时候出现错误:ORA-12547 TNS:lost contact经网上查资料是因为未安装libaio-0.3.93-4.i386.rpm包导致。
Ora-01846: not a valid day of the week(转)
select to_date('Mon Jan 21 13:25:47 2008', 'dy mon dd hh24:mi:ss yyyy') from dualOra-01846: not a valid day of the week 出现的是中文的字符日期,如下:星期五 12月 19 13:53:15 2008 是字符集的问题,解决:alter session set nls_date_language = 'American' [@more@]select to_date('Mon Jan 21 13:25:47 2008', 'dy mon dd hh24:mi:ss yyyy') from dualOra-01846: not a valid day of the week 出现的是中文的字符日期,如下:星期五 12月 19 13:53:15 2008 是字符集的问题,解决:alter session set nls_date_language = 'Am
【字符集】处理Toad显示乱码及Windows XP下无法插入“某些汉字”问题
在数据库服务器字符集为AL32UTF8,我们来思考并处理一下Windows XP环境下的Toad工具显示字符为乱码的问题。1.鉴于《【字符集】“客户终端字符集”、“NLS_LANG”环境变量以及“数据库字符集”》http://space.itpub.net/519536/viewspace-615345提到的“Toad同学”显示不稳定的现象,这里给出一个处理方法。2.先列一下上面文章中得到的几个结论:1)如果有可能,尽量保证客户端编码(Windows XP的cmd工具可以使用chcp命令来确认)、NLS_LANG参数和数据库字符集这三个内容一致,这样设置,无论是从性能上,还是从防止编码转换上都是最佳的;
Oracle客户端toad汉字乱码解决方法
出现中文乱码的主要原因是字符集不同。在Oracle中,我们关心三个地方的字符集: 先来查看一下数据库字符集: 在Oracle中可能使用Select userenv('language') from dual;或者:Select name, value$ from props$;查看。 l Oracle服务器内部的字符集 修改方法: connect sys/chang_on_install update props$ set value$='TRADITIONAL CHINESE_TAIWAN.AL32UTF8'where name='NLS_CHARACTERSET'; commit; 2 NLS_LANG变量里保存的字符集 这个是Oracle设置的一个变量。在Windows中,这个变量保存在注册表中: HKEY_LOCAL_MACHINESOFTWAREORACLEHO
ORA-01078 & LRM-00109错误解决方法
通过startup命令启动数据库时报错,详细如下: SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/oracle/product/10.0.3/gjwgdb/dbs/initgjwgdb.ora' 错误很明确,就是当数据库在启动时,默认读取pfile参数文件时报错了,此时我进入该目录一看,pfile文件真的是没有被创建。解决办法是: $cd /oracle/admin/gjwgdb/pfile cp init.ora /oracle/product/10.0.3/gjwgdb/dbs/initgjwgdb.ora 然后 $sqlplus / as sysdba SQL>startup; ...... Database mounted. Database op
Power Designer 12.5 下载及破解
我的系统是win7 ,安装并破解成功了!一、下载1、PowerDesigner 12.5官方下载地址 http://download.sybase.com/eval/PowerDesigner/powerdesigner125_eval.exe (复制到浏览器或迅雷下载) 大小125 MB (132,006,349 字节)二、破解1、安装完成后,修改安装目录下的pdflm12.dll文件,使用 UEDIT32 二进制编辑器打开此文件,查找:83 C4 14 8B 85 E4 FE FF FF将此字符串改为83 C4 14 33 C0 90 90 90 90 并保存(win7或者vista需要更改文件夹权限方可保存)2、制作license.lic文件拷贝以下内容,并保存为license.lic文件(注意扩展名是lic)F
常用的sql*plus命令:
查看当前使用的数据库实例: select name from V$database; ***************************************************切换两个数据库实例 在sqlplus里connect username/password@sid 或host set ORACLE_SID=sid 或cmd里set ORACLE_SID=sid 或修改注册表里ORACLE_SID项 ***************************************************执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 ************
在sql*plus中,切换到操作系统命令提示符下
在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus: ! sql>! $hostname $exit sql> [@more@]
Linux下启动Oracle database EM及isqlplus等命令
Linux下启动Oracle database EM及isqlplus等命令$ORACLE_HOME/bin/emctl start dbconsole$ORACLE_HOME/bin/isqlplusctl startemctl常用命令语法:emctl start dbconsole启动EM console服务,使用前需要先设置ORACLE_SID环境变量 emctl stop dbconsole停止EM console服务,使用前需要先设置ORACLE_SID环境变量使用命令行工具emca可以创建,修改,重建或者删除dbcontrol的配置。而使用命令行工具emctl可以启动/停止EM console服务,查看服务状态等。emca常用命令语法:emca -repos create创建一个EM资料库emca -repos recreate重建一个EM资料
创建数据库命令
DBCA[@more@]
linux下怎么启动oracle数据库
首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:第一步:打开Oracle监听$ lsnrctl start第二步:进入sqlplus$ sqlplus /nologSQL>第三步:使用sysdab角色登录sqlplusSQL> conn /as sysdba第四步:启动数据库SQL> startup[@more@]
数据库恢复案例大全
仅仅丢失一个普通用户数据文件的恢复A(联机恢复) (例如,丢失D:BACKUPDBUSERS01.DBF) 准备工作, 通过下面的工作,如果完全恢复,应该可以看到;insert into test1 values(2); SQL> conn lunar/lunar SQL> select * from tab; TESTBACKUP3 TABLE SQL> create table test1 (a number); SQL> insert into test1 values(1); SQL> alter system switch logfile; SQL> commit; SQL> alter system switch logfile; SQL> insert into test1 values(2); SQL> commit; SQL> alter system switch logfile; SQL>
数据库开启监听
lsnrctl start[@more@]lsnrctl start
看各个表空间占用磁盘情况:
SQL> col tablespace format a20 SQL> select b.file_id 文件ID号, b.tablespace_name 表空间名, b.bytes 字节数, (b.bytes-sum(nvl(a.bytes,0))) 已使用, sum(nvl(a.bytes,0)) 剩余空间, sum(nvl(a.bytes,0))/(b.byte
查询每个用户的权限
SELECT * FROM DBA_SYS_PRIVS;[@more@]SELECT * FROM DBA_SYS_PRIVS;