造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。
法(1)运行窗口中输入regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
找到右边的 ORACLE_SID设置为XXXX,XXXX就是你的database SID.如果没有则新建一个字符串值。
数值名称为:ORACLE_SID 数值数据为:XXX (就是你的SID号,如果不懂就当作数据库名吧)
或者
法(2)右击我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的 database SID.或者进入sqlplus前,在command line下输set oracle ......
oracle当多表union时遇到nvarchar2类型时报错 字符集不匹配
对使用nvarchar的地方,加上 to_char( nvarchar 的变量或字段 )
如:
select to_char(name),price from aa
union all
select to_char(name),price from bb
3张表aa,bb,cc都有 name price 字段 查询价格最高的前3位姓名
select * from(select to_char(name),price from aa
union all
select to_char(name),price from bb
union all
select to_char(name),price from cc order by price desc)where rownum<=3
【注意】
VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。
VARCHAR在Oracle中不建议使用。
具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则
1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。
2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。
asp.net,WWW.FENGFLY.com
雨枫 技 术教程网 asp.net,WWW.FENGFLY.comasp.net,WWW.FENGFLY.com ...
原文来自 ......
Oracle中使用IMP Dos命令 导入DIC数据库备份过程
1.使用具有建立表空间和用户权限的用户登录Oracle;
2.建立需要的表空间;
3.建立需要的用户(用户名,密码,默认表空间,临时表空间,权限)
4.打开DOS窗口,在命令行中输入IMP;
5.用第三步中建立好的用户登录数据库;
6.输入DIC文件的完全路径,按照提示选择,即可导入。
......
Oracle IO问题解析
数据库的作用就是实现对数据的管理和查询。任何一个数据库系统,必然存在对数据的大量读或者写或者两中操作都大量存在。IO问题也往往是导致数据库性能问题的重要原因。在这篇文章中,主要帮助大家在理解Oracle的读写操作机制的基础上,灵活解决遇到的各种常见的IO问题。
1 Oracle中IO的产生
IO当然包括了读、写两部分,先介绍Oracle中写操作的产生。
1.1 写
介绍写操作之前,先简单的看下Oracle的物理结构:oracle的物理文件包括以下三种文件:控制文件(Control Files)、重做日志文件(Redo Log Files)、数据文件(datafiles)。而数据文件中,根据功能的不同,还可以分为系统数据文件、临时空间文件、回滚段文件和用户数据文件。另外,如果数据库的Archive Log模式被激活,还存在归档日志文件。Oracle的IO产生,就是对这些文件的数据读、写操作。下面再详细看下几种主要写操作的产生及其过程。
1.1.1 控制文件
控制文件中记录了整个数据库的物理结构信息,如数据库名字、数据文件及日志文件名字和位置、事件戳信息等等。任何数据库的结构变化(如果创建新的数据文件)都会引起Oracle修改控制文件。同时控制文件还记录系统和各个数据文件的SCN(S ......
在Oracle中一个事务是由一个可执行的SQL语句开始,一个可执行SQL语句产生对实例的调用。在事务开始时,被赋给一个可用回滚段,记录该事务的回滚项。一个事务以下列任何一个出现而结束。
◆当COMMIT或ROLLBACK(没有SAVEPOINT子句)语句发出。
◆一个DDL语句被执行。在DDL语句执行前、后都隐式地提交。
◆用户撤消对Oracle的连接(当前事务提交)。
◆用户进程异常中止(当前事务回滚)。
(1)提交事务
提交一事务,即将在事务中由SQL语句所执行的改变永久化。在提交前,Oracle已有下列情况:
◆在SGA的回滚段缓冲区已生成回滚段记录,回滚信息包含有所修改值的老值。
◆在SGA的日志缓冲区已生成日志项。这些改变在事务提交前可进入磁盘。
◆对SGA的数据库缓冲区已作修改,这些修改在事务真正提交之前可进入磁盘。
在事务提交之后,有下列情况:
◆对于与回滚段相关的内部事务表记录提交事务,并赋给一个相应的唯一系统修改号(SCN),记录在表中。
◆在SGA的日志缓冲区中日志项由LGWR进程写入到在线日志文件, 这是构成提交事务的原子事务。
◆在行上和表上的封锁被释放。
◆该事务标志为完成 。
注意:对于提交事务的数据修改不必由DBWR后台进程立即写入数据 ......
oracle学习笔记_触发器
触发器
是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。
功能:
1、 允许/限制对表的修改
2、 自动生成派生列,比如自增字段
3、 强制数据一致性
4、 提供审计和日志记录
5、 防止无效的事务处理
6、 启用复杂的业务逻辑
开始
create trigger biufer_employees_department_id
before insert or update
of department_id
on employees
referencing old as old_value
new as new_value
for each row
when (new_value.department_id<>80 )
begin
:new_value.commission_pct :=0;
end;
/
触发器的组成部分:
1、 触发器名称
2、 触发语句
3、 触发器限制
4、 触发操作
1、 触发器名称
create trigger biufer_employees_department_id
命名习惯:
biufer(before insert update for each row)
employees 表名
department_id 列名
2、 触发语句
比如:
表或视图上的DML语句
DDL语句
数据库关闭或启动,startup shutdown 等等
before insert or update
of department_id
on employ ......