Oracle Misc

1. 创建Oracle的trigger
在trigger的脚本中,需要在每个单独语句后面加上了分号,然后在SQLPlus中执行,可以执行成功。带分号的trigger脚本在 DBVIS 中运行会报错。这种现象跟DBVIS工具有关。
如果trigger脚本中每个单独语句后没有分号,在DBVIS中可以成功执行。但通过往表中插数据来触发这个trigger时,该trigger无法运行,会提示如下错误:
ORA-04098: 触发器 无效且未通过重新验证

创建正确的trigger,需要在每个单独语句后面加上了分号。
例子:

CREATE OR REPLACE TRIGGER Test_Increase BEFORE
insert ON TEST FOR EACH ROW
begin
select TestIncrease_Sequence.nextval into:new.id from dual;
end;


==============================================

1. 根据下面的文件修改完IP后,需要重启windows 中 Oracle对应的实例服务。

[b]Oracle 的IP 相关修改[/b]

$ORACLE_HOME/network/admin/listener.ora文件 HOST=hostname,看看主机名是否正确,也可以是IP
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)

$ORACLE_HOME/network/admin/tnsnames.ora文件中HOST = 192.168.0.1,IP是否正确
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)


2. oracle忘记用户名和密码怎样恢复(不用重装安装)

sqlplus /nolog
conn / as sysdba
startup (如果数据库不是处于启动状态则启动)
alter user sys identified by abc123456; (后面一定要带分号)
然后就可以使用sys用户密码登陆了

注意密码的规定写法:密码的第一个字符不能是数字的

3. 解锁用户
alter user system account unlock; (后面一定要带分号)

4. 导入数据库
--for UUEP
--SERIAL0119
CREATE USER SERIAL0119 IDENTIFIED BY yx;

GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO SERIAL0119;

C:\Users\Administrator>imp system/yx@yx file=e:\terry\Oracle\CSAPRD1_FullExp_cus
tomer_0113.dmp fromuser=serial touser=SERIAL0119

5. sql plus中如何令一条记录一行显示,而不换行

set lines 150 --设置line length
set wrap off --设置是否wrap
set pagesize 1000 --设置page size. the interval to show header.
set trimspool on --设置是否trim the end space.


6. 使用PL SQL连接Oracle时,可以不安装Oracle客户端。
说明:
1) 在64位操作系统win 7里安装PLSQL时,系统默认会给PL/SQL安装到C:\Program Files(X86)路径下,PLSQL无法识别安装路径中的(X86),所以安装时,需要将带有大括号的(86)内容从安装路径中去掉,否者无法在PLSQL中设置Oracle home和OCI的值。
2) plsqldev715无法识别64位的instantclient。

6.1 只需要下载Oracle的instantclient-basic-win32-10.1.0.5,将其解压, 在PL SQL里将Oracle home和 OCI library(oci.dll)值设为instantclient的路径和相应的dll文件路径。
6.2 新建一个tnsnames.ora文件,文件位置可以自己指定,文件内容参考如下:
ORCL_SID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

其中ORCL_SID的前面不能有空格,否则会出现无法连接到Oracle database的TNS 异常。

6.3 打开PL/SQL, 填写数据库连接项时,关键的在于Database选项。我们使用”IP/实例名“的方式,例如填入XXX.XXX.XXX.XXX/MyDB。否则会出现无法连接到Oracle database的TNS 异常。

6.4 设置TNS_ADMIN系统环境变量,指向tnsnames.ora所在的路径。


7. PL SQL连接Oracle数据库,进行查询时,查询结果中的中文乱码问题
[quote]
转载:http://oracle.chinaitlab.com/PLSQL/798196.html
通过下面方法的修改,无论是查询结果还是导出的sql语句都不会有乱码了。因为数据库和客户端所使用的NLS已经一致

1。select * from v$nls_parameters 查询nls的参数,获得数据库服务器端的字符编码
NLS_LANGUAGE   
NLS_CHARACTERSET   
2。修改本地环境变量,设置
NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK //这个是我们的数据库字符编码  
NLS_LANG格式:  
NLS_LANG = language_territory.charset   
有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:
language 指定服务器消息的语言。  
territory 指定服务器的日期和数字格式。  
charset 指定字符集  
也可更改相应注册表项  
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG   
需要保证要设置客户端字符集与服务器端字符集一致。  
以上都是更改PL/SQL Developer的字符编码方式。
[/quote]

8. Oracle 10g 在 win 7(version 6.1)下的安装
[quote]
首先下对版本,Oracle 10g支持Win7版:

http://download.oracle.com/otn/nt/oracle10g/10203/10203_vista_w2k8_x86_production_db.zip

错误A:

正在检查操作系统要求...
要求的结果: 5.0,5.1,5.2,6.0 之一
实际结果: 6.1
检查完成。此次检查的总体结果为: 失败 <<<<
问题: Oracle Database 11g 未在当前操作系统中经过认证。
建议案: 确保在正确的平台上安装软件。

解决方案:

1、在安装目录中搜索refhost.xml,然后在适当位置添加以下内容,注意括号配对

<!--Microsoft Windows 7-->

<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
2、在安装目录中搜索oraparam.ini,找到以下相似内容,然后修改为

#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE
#Windows=5.0,5.1,5.2,6.0,6.1

然后在适当位置添加

#[Windows-6.1-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
#[Windows-6.1-optional]
[/quote]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值