我正在尝试复制Ingres"从tbl2更新tbl1"命令,这在Oracle中并不完全存在.
所以我使用"update(select tbl1 join tbl2 ...)"命令.两个表都定义了主键,我认为我的连接是唯一标识行,但我仍然得到"ORA-01779:无法修改映射到非密钥保留表的列".
这里有适当的匿名表定义和我正在尝试执行的更新:
CREATE TABLE tbl1
(
ID decimal(11) NOT NULL,
A varchar2(3) NOT NULL,
B float(7),
CONSTRAINT tbl1_pk PRIMARY KEY (ID,A)
)
;
CREATE TABLE tbl2
(
ID decimal(11) NOT NULL,
A varchar2(3) NOT NULL,
B float(15),
C float(15),
D char(1) NOT NULL,
CONSTRAINT tbl2_PK PRIMARY KEY (ID,A,D)
)
;
UPDATE
(select tbl1.b, tbl2.c
from tbl1 inner join tbl2
on tbl1.id=tbl2.id
and tbl1.a=tbl2.a
and tbl1.b=tbl2.b
and tbl1.a='foo'
and tbl2.D='a')
set b=c;
Run Code Online (Sandbox Code Playgroud)
如何定义我的选择,以便Oracle确信我没有唯一性违规?
我有一个java应用程序在基类中创建两个静态对象,这些对象需要在程序的各个类中引用.
public class Baseclass{
public static ClassA A = new ClassA();
public static ClassB B = new Classb();
...
...
...
}
Run Code Online (Sandbox Code Playgroud)
这些对象在其他类中被引用为本地私有变量.
public class ClassA{
private ClassB b = Baseclass.B;
Run Code Online (Sandbox Code Playgroud)
但是,两个对象都需要彼此运行,如果在创建另一个对象之前创建其中一个对象的新实例,则"upper"类中的局部变量将设置为null.Java中是否存在将对象的实际对象(如指针)作为变量引用而不是制作对象副本的概念?
我的团队有两个类,User并且Store与JPA @ManyToMany注释相关.相关代码如下.
在创建新User对象并设置其商店时,生活是美好的.但是当我们尝试通过Struts 2/Spring Web UI更新User对象时,我们看到了一些意想不到的行为.(通过JUnit运行简单的自动化集成测试时不会出现这些问题).
简单地说,在保存时User,其商店集合不会更新 - 数据库显示没有更改,并且有User问题的对象的重新加载显示它具有未更改的商店集.
我们已经找到了解决这个问题的唯一解决方案-我们不喜欢这样的解决方案,它使所有的我们的团队有点恶心开发商-是创建一个新Set的StoreS,然后做user.setStores(null),然后做user.setStores(stores).
我们正在使用OpenEntityManagerInViewFilter; 我们使用Hibernate作为我们的JPA提供者; 我们正在使用Spring的JpaTransactionManager.我们@Transactional的代码中没有任何注释 - 由于其他地方描述的代理行为,添加它们会破坏现有代码.
任何人都可以提供任何关于如何以不安静的方式解决这个问题的见解.
User.java的相关部分:
@ManyToMany
@JoinTable(name = "company.user_store_access",
joinColumns = @JoinColumn(name = "userid"),
inverseJoinColumns = @JoinColumn(name = "storeid"))
public Set<Store> getStores() {
return stores;
}
Run Code Online (Sandbox Code Playgroud)
Store.java的相关部分:
@ManyToMany(mappedBy = "stores")
public List<User> getUsers() {
return users;
}
Run Code Online (Sandbox Code Playgroud)
UserDetailAction.java的相关部分:(传递一层或两层,然后:)
entity = getEntityManager().merge(entity);
Run Code Online (Sandbox Code Playgroud) 我的项目正在考虑使用Concordion进行自动验收测试.我在Concordion中看到的最大缺点是自动生成的摘要页面.目前,我们必须让测试人员或功能用户深入到每个生成的HTML页面中以检查成功或失败.
在查看Concordion的svn存储库时,我看到一个建议的修改来生成摘要XML文件 - 但据我所知,该更改尚未合并到主干行中.如果可以的话,我宁愿避免破解Concordion的源代码并直接修改它.
是否有人知道生成Concordion主/摘要报告类型页面的快捷方式?
我们正在开发一个Java(1.6)服务器应用程序,它是一个事务服务器,通过TCP套接字监听连接.每个新连接都会创建一个新线程,该线程将保持活动状态,直到连接关闭 每个客户端都会将事务发送到将要处理的服务器,然后将响应发送回客户端.
这很好用.当我们想要通过同一个套接字发送许多异步事务(或消息)时,就会出现问题.我写了一个小应用程序,在每次事务之间发送1000个事务,间隔为10毫秒.该应用程序是异步的,因此发送消息并且响应位于中间.
这是处理incomming消息并将它们发送到另一个要处理的组件的部分的代码(该组件有一个线程池):
public void run() {
...
...
socketBuf = new BufferedInputStream(input);
baos = new ByteArrayOutputStream();
while ((bytes_read = socketBuf.read(buffer)) != -1) {
if (bytes_read < 0) {
log.error("Tried to read from socket, read() returned < 0, Closing socket.");
return;
}
baos.write(buffer, 0, bytes_read);
break;
}
if (bytes_read >= 0) {
baos.flush();
byte data[] = baos.toByteArray();
if (data.length > 0) {
GWTranData tData = posMessage.decode(data, false);
if (tData.getMessageType() > 0) {
// Send to the Pre-Online Manager to …Run Code Online (Sandbox Code Playgroud) 转换为使用Oracle Pro * C的现有程序在预编译时会引起问题。它从文件系统读取一个文件,对其进行解析,然后写入几个数据库表。
有一个具有以下定义的方法:
void parse_line(inline)
char *inline;
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
当我尝试做到这一点时,我看到:
Syntax error at line 162, column 13, file myfile.cp:
Error at line 162, column 13 in file myfile.cp
char *inline;
............1
PCC-S-02201, Encountered the symbol ";" when expecting one of the following:
( * const, volatile, an identifier,
Run Code Online (Sandbox Code Playgroud)
就我所知,此函数声明在语法上是正确的,因此我必须假定由于其他问题而出现此预编译器错误。
除了将整个程序粘贴在这里之外,有人对我可以开始寻找的一些好地方有任何建议吗?
我的pcscfg.cfg看起来像这样:
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include,/usr/lib64/gcc/x86_64-suse-linux/4.1.2/include,/usr/lib64/gcc/x86_64-suse-linux/4.3/include)
ltype=short
define=__x86_64__
Run Code Online (Sandbox Code Playgroud) 开发人员更改userid了表格列中的所有值map.我需要他们换回来,因为userid这也是profiles表中的关键.值得庆幸的是,由于不值得进入的原因,map并且profiles共享另一个共同的专栏,employeeId.
因此,我想获取所有的值userid,profiles并覆盖userid匹配行中的值map.
我的直觉是做这样的事情:
UPDATE map,profiles
SET map.userid = profiles.userid
WHERE map.employeeId = profiles.employeeId
Run Code Online (Sandbox Code Playgroud)
但SQLServer 2005并不关心UPDATE子句中有两个表.
有什么建议?
我有一个简单的字符串列表,可能是任意长度.我希望能够使用这个字符串列表,因为我会使用行集.有问题的应用程序正在针对SQL Server运行.
更清楚一点,如果我这样做,SELECT 'foo', 'bar', 'baz'我会把'foo','bar'和'baz'作为一行中的字段.我想将它们中的每一个看作一个单独的行.
是否存在我缺少的SQL(或SQLServer特定的)函数或技术,或者我将不得不求助于使用外部脚本语言编写函数?
它编译得很好,但是当我尝试从控制台运行它时,我得到了一个ClassNotFoundException错误.但是,如果我从Eclipse运行它,它工作正常.为什么?
我使用"javac FileIO.java"编译和"java FileIO"来运行它.
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.io.FileOutputStream;
public class FileIO {
public static void main(String[] args){
PrintWriter pw = null;
BufferedReader bfr = null;
String linea = null;
try{
bfr = new BufferedReader(new FileReader("Records"));
linea = bfr.readLine();
} catch(FileNotFoundException fnfex){
System.out.println("Check you have reading/writing access.");
} catch(IOException ioex){
ioex.printStackTrace();
}
try{
pw = new PrintWriter(new FileOutputStream("Copy Records"));
} catch(FileNotFoundException fnfex){
System.out.println("Check you have reading/writing access.");
}
while(linea != null){
pw.println(linea);
try{ …Run Code Online (Sandbox Code Playgroud) 几个月来一直运行良好的应用程序已经停止了几个月@Entity来已经成为其中一部分的JPA 注释.随着我的集成测试运行,我看到了几十个" org.hibernate.MappingException: Unknown entity: com.whatever.OrderSystem"类型错误.
我不清楚这里出了什么问题.
我没有hibernate.cfg.xml文件,因为我正在使用Hibernate实体管理器.由于我只使用注释,因此我的实体没有.hbm.xml文件.我的persistence.xml文件是最小的,并META-INF按照预期生活.
我显然错过了一些东西,但不能把手指放在上面.
我正在使用hibernate-annotations 3.2.1,hibernate-entitymanager 3.2.1,persistence-api 1.0和hibernate 3.2.1.hibernate-commons-annotations也是项目POM的一部分,但我不知道这是否相关.
是否有一个已消失的web.xml条目,或者一个意外删除的Spring配置条目?
java ×4
jpa ×2
oracle ×2
sql ×2
sql-server ×2
annotations ×1
c++ ×1
concordion ×1
console ×1
file ×1
hibernate ×1
many-to-many ×1
object ×1
oracle-pro-c ×1
reference ×1
sockets ×1
spring ×1
sql-update ×1
struts2 ×1
t-sql ×1
writing ×1