1.用JDBC动态创建触发器时,出现的奇怪问题:
Error: PLS-00103: 出现符号 ""在需要下列之一时:
begin case declare end
exception exit for goto if loop mod null pragma raise return
select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
符号 "" 被忽略。
右键重新编译(recompile)也会出错
但是创建的触发器在PL/SQL重新Execute(F8)一次没问题。
初步判断是由于直接使用Freemarker生成的sql创建触发器导致的,特别应该关注回车换行符
因为现在如果重新将这个生成的触发器以流的方式读出一次,再执行则不会出错。
更新:确定是由于oracle不能识别window的回车换行符,统一修改为linux类型的回车换行符即可
2.SQLServer中的语句和JDBC的语句区别
在JDBC的SQL中不能使用GO,因为:
GO is not a Transact-SQL statement; it is a command recognized by the sqlcmd and
osql utilities and SQL Server Management Studio Code editor.
那以前创建触发器时,类似下面的语句:
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'TG_WF_Activity' AND type
= 'TR')
DROP TRIGGER TG_WF_Activity_Activity
GO
CREATE TRIGGER TG_WF_Activity_Activity...
在JDBC中只能拆分成两个SQL语句,一个drop,一个create
分享到:
相关推荐
【数据库触发器详解】 数据库触发器是数据库管理系统中一种特殊类型的存储过程,它不依赖于用户的直接调用,而是由特定的数据库操作(如INSERT、UPDATE、DELETE)自动触发执行。触发器的主要作用是增强数据库的完整...
神通数据库触发器按照所触发动作的间隔尺寸可以分为语句级触发器和行 级触发器。触发器由 CREATE TRIGGER 语句定义,FOR EACH 子句定义了触发动作的间隔尺寸,它既 可以是 FOR EACH STATEMENT(语句级触发器),也...
在压缩包文件"okbase.net"中,虽然没有具体的源代码,但根据标签"C#源代码 数据库应用"可以推测,其中可能包含了一个C#项目,该项目可能提供了获取数据库触发器的具体实现。通过研究这个项目,你可以学习如何将上述...
本资源"**c#数据库操作触发器SQL文件源码.rar**"提供了C#编程环境下如何管理和使用数据库触发器的示例源码,以及相关的SQL文件,可以帮助开发者深入理解这一技术。 首先,让我们来探讨C#中的数据库操作。C#通过ADO...
然而,过度使用触发器可能会导致性能问题,因为它们增加了数据库处理事务的复杂性。 在学习"数据库原理与应用之视图和触发器"时,通常会涉及以下几个知识点: 1. 视图的创建与修改:如何使用SQL语句(如CREATE ...
然而,也需要注意潜在的问题,如性能开销、数据库阻塞和复杂性增加。因此,在实际应用中,应谨慎评估是否真的需要在数据库层进行这种集成,或者是否可以考虑消息队列、事件驱动架构等替代方案。 总之,"Oracle...
数据库编程技术——游标、存储过程与触发器 数据库编程技术是数据库管理系统中的一种重要技术,用于实现数据库的自动化管理和数据处理。本节实验重点介绍游标、存储过程和触发器三种数据库编程技术的应用。 一、...
5. **ADO.NET**:这是.NET框架的一部分,提供了一组类库用于连接和操作数据库,包括创建SQL命令、处理结果集以及执行事务等。 6. **数据库工程文件**:可能是一个.sdf(SQL Server Compact Edition)或.mdf(主...
在IT行业中,数据库触发器是一种重要的数据库对象,它可以在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句或存储过程。本话题将深入探讨如何使用Java代码来生成数据库触发器,使得...
很好的SQLserver数据库触发器,可以利用游标来循环读取,很好的。
本实验设计涉及的核心概念是数据库中的高级特性,如存储过程、触发器和游标,这些都是数据库管理系统(DBMS)中实现复杂业务逻辑和自动化操作的关键工具。 首先,我们来深入理解一下“存储过程”。存储过程是一组...
在存储过程中,不仅可以包含程序流、逻辑以及对数据库的查询,而且也可以接受参数、输出参数、返回单个或多个结果集。数据库存储过程与触发器可以提高系统开发效率。 存储过程的优点包括: * 存储过程一旦执行一次...
本教程主要聚焦于SQL的三个核心概念:存储过程、游标和触发器,它们都是数据库编程和自动化的重要组成部分。 1. 存储过程: 存储过程是一组预先编译的SQL语句,存储在数据库服务器中,可以按需调用执行。它们提供了...
当JSP页面上的提交按钮被点击,对应的Servlet或JSP页面会执行相应的SQL操作,这些操作可能会触发预定义的数据库触发器。 6. **实现方式**:在JSP中,可以使用PreparedStatement来执行SQL语句,这不仅有助于防止SQL...
它们可以接受参数,返回结果集,并能与其他数据库对象交互。 在VS2012中,你可以直观地编辑存储过程的代码,利用内置的IntelliSense功能帮助编写和调试。完成编写后,只需右键点击存储过程,选择“发布”或“执行”...
这种机制使得触发器的管理和监控成为可能,但同时也要求数据库管理员对触发器的逻辑和行为有深入的理解,以避免潜在的性能问题和逻辑错误。 总结来说,触发器是数据库系统中用于增强数据完整性和业务逻辑的重要工具...
**存储过程(Stored Procedure)** 是一组为了完成特定功能的 SQL 语句集,它们经过编译后存储在数据库中。用户可以通过指定存储过程的名字以及必要的参数来执行它。在 SQL Server 的不同版本中,存储过程可以分为两...
存储过程是一组为了完成特定功能的SQL语句集,它可以被编译并存储在数据库中,通过调用其名称来执行,具备参数传递、逻辑控制等功能。在本实验报告中,我们看到了创建存储过程的具体实例,如创建了一个名为jsearch的...
数据库面试题集 从给定的文件信息中,我们可以总结出以下知识点: 1. SQL 查询语句:如何编写一个 SQL 查询语句,查询的结果要能够显示每个教师所教的课程,对于不教课的教师也必须在查询结果中有所表明。 答案:...