欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle Misc

程序员文章站 2022-06-04 08:47:00
...
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/[email protected] 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]
相关标签: Oracle