oracle 触发器中是否有try catch功能,能否给个实例

oracle 触发器中是否有try catch功能,能否给个实例,第1张

oracle 触发器中有try catch功能。

示例:

Create TRIGGER dbo.T1_AftInst

ON dbo.T1 AFTER INSERT

AS

BEGIN

SET NOCOUNT ON

begin try

insert into Serv2..dbo.T2 select * from inserted

end try

begin catch

insert into dbo.T1_bak select * from inserted

insert into dbo.err_log values(getdate(),'INST T2 ERR ',SubString(error_message(),1,7000))

end catch

END

通过配置本地数据库的tns配置文件实现:

去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下

ORCL23 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))

)

(CONNECT_DATA =

(SID = ORCL)

)

)

添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了

public void testOracle(){ Connection con = null// 创建一个数据库连接 PreparedStatement pre = null// 创建预编译语句对象,一般都是用这个而不用Statement ResultSet result = null// 创建一个结果集对象 try { Class.forName("oracle.jdbc.driver.OracleDriver")// 加载Oracle驱动程序 System.out.println("开始尝试连接数据库!")String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE"// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名 String user = "system"// 用户名,系统默认的账户名 String password = "147"// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password)// 获取连接 System.out.println("连接成功!")String sql = "select * from student where name=?"// 预编译语句


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11476943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存