我在JBoss 6.2EAP下部署的Java7 web应用程序上有一个奇怪的行为。我有两个几乎完全相同的数据库实例(Oracle10)(结构相同但数据不同)。这两个实例可以互换,所有使用它们的应用程序都没有问题,但是对于一个特定的应用程序,当我只切换在JBoss上为该应用程序创建的数据源的连接字符串时,该应用程序停止工作,并且我得到一个SQLException "The connection manager is shutdown“。显然,当我得到异常时,DB和AS都没有关闭。如果我切换回另一个DB实例,一切工作正常。我唯一要更改的是数据源的连接URL (并重新启动JBoss)。应用
我的机器上安装了oracle10和11客户端。当我转到命令行并输入TNSPING时,输出告诉我如下所示
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-OUT-2012 09:34:39
如何改变它?
下面的部分是触发器的相关部分
BEGIN SELECT rec_date
INTO lv_rec_date
FROM receipts_table
WHERE receipts_number = new.receipts_number
EXCEPTION WHEN NO_DATA_FOUND THEN
lv_partial := FALSE;
END;
问题是,当它执行这一部分时,我没有很好地捕获它,而是得到了以下错误
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "APP.BEF_ROW_TRIGGER"
我是第一次使用Fluent NHibernate和NHibernate。大约从2000年开始,我就开始使用自己编写的映射器。大约2年前切换到LinqToSQL,大约6个月前切换到Entities。
我想看看Fluent/NHibernate能提供什么。然而,我似乎不能让它正确运行。下面是我的类的副本,它们的引用,ClassMaps。有人能告诉我这个简单的实现是否正确吗?
这是我的映射和对象类:
using System;
using FluentNHibernate.Mapping;
namespace MyData.Data.Mappings
{
public class Log
我有两个表,分别名为T1和T2。其中T1是父级,T2是子级。场景是,我启动了一个jdbc事务,然后在T1中插入一行,然后尝试在T2中插入一行。在T2中插入行会导致“完整性约束-找不到父键”异常。
我该如何处理这种情况?
Connection con;
try{
con = ConnectionPool.getConnection();
con.setAutoCommit(false);
int T1Id = getNewId("T1"); // from sequence;
int T2Id = getNewId("T2"); // from
为什么Oracle10 R2不允许在insert语句中调用函数时使用符号参数?
在我的应用程序中,我在insert语句中调用一个函数。如果使用符号方法传递参数,我会得到一个ORA-00907: Missing right parenthesis错误信息
INSERT INTO foo
(a,
b,
c)
VALUES (c,
F1(P1=>'1', P2=>'2', P3 => '3'),
e
我有以下相当古怪的行为:
取取器从数据库执行相当多的查询,并使用PreparedStatement来保持数据库之间的连接打开到查询。整个应用程序可以从主方法启动,也可以部署在tomcat中,然后通过web应用程序触发(而执行的代码在这两种情况下都保持不变)。
虽然通过main-maethod的本地执行会产生我所期望的数据,但是通过tomcat的执行不会。我已将错误归纳为以下几点:
/* Statement is a PreparedStatement which is initialized at
* the start of the execution and reused until
我是一名数据存储开发人员,在将作业从旧版本的数据存储迁移到新版本时。我面临着下面提到的查询的问题。
SELECT 1
FROM DUAL
GROUP BY CUBE (1,1,1,1,1,1)
SQL在我的PROD服务器(Oracle10)中返回64行,值为1,并在DEV (Oracle12c)中显示以下错误。这两个表之间没有其他区别。
ORA-00979: Not a GROUP BY Expression
谢谢Vivekan
我试着拿到触发我扳机的语句,但我找到了……在oracle 8i中有一个提示,但现在不起作用了。
我在Oracle10和11g上。
我尝试使用BEFORE或AFTER触发器,并在v$session中使用SQL_ID或PREV_SQL_ID,查询如下:
select substr(e.program,1,20),sql_text into l_program, sql_text
from v$sql s, v$session e
where s.sql_id = e.sql_id
and e.status = 'ACTIVE'
and e.sid = sys_
我正在尝试从序列中获取生成的密钥。(使用Servlet和Oracle10)
以下是我的代码:
query ="insert into TABLE_NAME(COL1,COL2,COL3) values(sysdate,?,SEQ_NAME.nextval)";
PreparedStatement pstmt = con.prepareStatement(query,new String[]{"COL3"}); //Getting error on this line
pstmt.setString(1,Str2);
pstmt.executeUpdate();
DECLARE
trn VARCHAR2(2) := 'DD';
cur SYS_REFCURSOR;
BEGIN
OPEN cur FOR
SELECT
TRUNC(some_date, trn),
NULL AS dummy_2,
COUNT( DISTINCT dummy_1 )
FROM
(SELECT SYSDATE AS some_date, ROWNUM AS dummy_1 FROM dual)
GROUP BY
TRUNC(some_date, trn);
EN