Oracle Misc
程序员文章站
2022-06-04 08:47:00
...
1. 创建Oracle的trigger
在trigger的脚本中,需要在每个单独语句后面加上了分号,然后在SQLPlus中执行,可以执行成功。带分号的trigger脚本在 DBVIS 中运行会报错。这种现象跟DBVIS工具有关。
如果trigger脚本中每个单独语句后没有分号,在DBVIS中可以成功执行。但通过往表中插数据来触发这个trigger时,该trigger无法运行,会提示如下错误:
ORA-04098: 触发器 无效且未通过重新验证
创建正确的trigger,需要在每个单独语句后面加上了分号。
例子:
==============================================
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中如何令一条记录一行显示,而不换行
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]
在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]
上一篇: Go语言基础设计模式之策略模式示例详解
下一篇: 数据库实验