有一个form,里面有两个table,要实现表1中的某个字段加到表2的某个字段,根据工号来连接.
要实现表1和表2中相同的工号它的金额的和,再放到表2中.
谢谢
为什么这句执行不了:
update yb1 set yb1.C4 = yb1.C4 + yb2.C2 from yb1,yb2 where yb1.C1=yb2.C1在oracle的sql\plus中也执行不了.谢谢
要实现表1和表2中相同的工号它的金额的和,再放到表2中.
谢谢
为什么这句执行不了:
update yb1 set yb1.C4 = yb1.C4 + yb2.C2 from yb1,yb2 where yb1.C1=yb2.C1在oracle的sql\plus中也执行不了.谢谢
解决方案 »
- 谁对JAVA 熟悉?能否把这段代码改写成JAVA的呢?:)
- 小公司的总部与分店该如何联网!?
- XP+ADO+DBF的问题。急!急!急!
- 请问《DELPHI5开发人员指南》中的托盘组件(TrayIcon.pas)如何使用
- 仓储管理系统
- 如何实现根据关键字查找word文档里相匹配的内容?
- DBGrid控件的OnColExit事件如何判断是从那一列(字段fields)失去焦点的
- 急盼回复:我在delphi6编程中,将A数据表用BATCHMOVE复制到B数据表中后,为什么小数部份丢失了
- 各位大侠 请问在form 上可以既画前景又画背景吗(在同一区域)
- 如何在运行期改变QReport控件中的QRBand的BandType?急!
- 一个小问题:如何让快捷菜无效?高分100·在线,解决就散分
- 报表二次开发问题。。。
使用这句就可以了。
---------- ----------
1 2
2 3
3 1SQL> select* from t1; C1 C2
---------- ----------
1 2
2 3
3 1
4 5SQL> update t1 set c2=c2+ (select c2 from
2 (select t1.c1,t1.c2 from t1,t2 where t1.c1=t2.c1
3 union
4 select c1,0 as c2 from t1 where c1 not in
5 (select c1 from t2)) b
6 where t1.c1=b.c1);4 rows updatedSQL> select * from t1; C1 C2
---------- ----------
1 4
2 6
3 2
4 5SQL> commit;Commit complete
2 (select yb2.c1,yb2.c2 from yb2,yb1 where yb1.c1=yb2.c1
3 union
4 select c1,0 as c2 from yb1 where c1 not in
5 (select c1 from yb2)) b
6 where yb1.c1=yb2.c1);
中间只是嵌套了一个带union的查询,前半部分是公共的,后半部分是yb2中没有的,所以按0加,这样就不会是null了
另一个上的分都给了,不过还有个问题,帮我解决一下,解决完了,再多给你一些你给的语句在sql\plus中可以了,可是在delphi中:
query1.Close;
query1.sql.Clear;
query1.sql.add('update yb1 set c4=c4+(select c2 from (select c1c2c3.c1,c1c2c3.c2 from c1c2c3,yb1 where yb1.c1=c1c2c3.c1 union select c1,0 as c2 from yb1 where c1 not in (select c1 from c1c2c3)) b where yb1.c1=b.c1)');
query1.Open;
这个执行不了
改成:
query1.ExecSQL;
query1.sql.Clear;
query1.sql.add('update yb1 set C4=100 where C1=130339');
query1.ExecSQL;
这都执行不了
query1.Close;
query1.sql.Clear;
query1.sql.add('update yb1 set c4=c4+(select c2 from (select c1c2c3.c1,c1c2c3.c2 from c1c2c3,yb1 where yb1.c1=c1c2c3.c1 union select c1,0 as c2 from yb1 where c1 not in (select c1 from c1c2c3)) b where yb1.c1=b.c1)');
query1.Open;
query1.sql.Clear;
query1.sql.add('update yb1 set c4=c4+(select c2 from (select c1c2c3.c1,c1c2c3.c2 from c1c2c3,yb1 where yb1.c1=c1c2c3.c1 union select c1,0 as c2 from yb1 where c1 not in (select c1 from c1c2c3)) b where yb1.c1=b.c1)');
query1.execsql;
query1.sql.Clear;
query1.sql.add('update yb1 set C4=100 where C1=130339');
query1.ExecSQL;
这都执行不了
=======================================这个不是sql语句的问题了,报什么错误??是不是你的SQLPlus开着,里面有未提交的语句把表锁了?
key violation
[oracle][odbc][ora]ora-00600:内部错误代码.自变量:[kcbgcur-9][1][4200318][2][][][][]....
还是query要什么设置?
产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。
解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。
一个报错例子如下:
ORA-00600: internal error code, arguments: [1237], [], [], [], [], [], [], []
你是怎么连接oracle的,改一下连接方式看看
query1.sql.Clear;
query1.sql.add('update yb1 set C4=100 where C1=130339');
query1.ExecSQL;
这个报错是:无效字符
query不是有个属性是databasename,我只设置了这个.
我通常用table,其他的都没有用过
我不是专业的开发员,领导让我做,我以前学过一点而已,很谢谢你
不过query1.Close;
query1.sql.Clear;
query1.sql.add('select ......');
query1.ExecSQL;
能执行.
就是刚才的这个不行
可是在程序里执行时出错,提示:error creatng cursor handle
filter需要什么设置吗?
给你分,谢谢你