有两个表 A(DBH,DZ), B(DBH,DZ),关键字都是DBH, 想把B表的DZ字段修改为A.DZ||B.DZSQL2000里面可以用以下语句实现:update B
set B.DZ=B.DZ||A.DZ
from A,B
where A.DBH=B.DBH在下用的是Oracle8.05用以上语句实现不了,提示“ORA-00933:SQL命令未正确结束”
上次发贴有人说用UPDATE B
SET DZ=DZ||(SELECT A.DZ
from A
where A.DBH=B.DBH);又提示“ORA-00936:缺少表达式”谁能给个正确答案??????
set B.DZ=B.DZ||A.DZ
from A,B
where A.DBH=B.DBH在下用的是Oracle8.05用以上语句实现不了,提示“ORA-00933:SQL命令未正确结束”
上次发贴有人说用UPDATE B
SET DZ=DZ||(SELECT A.DZ
from A
where A.DBH=B.DBH);又提示“ORA-00936:缺少表达式”谁能给个正确答案??????
解决方案 »
- 求助!!! RAC验证节点信任关系!!!!!!
- 求Oracle11g入门学习的电子书.
- 求助:oracle 10g 客户端可不可以连接oracle 9i服务器啊?怎么连啊?急!!!!
- 如何使用powerdesigner导出文档??
- 新建了一个数据库为什么manager console的导航器里没显示这个数据库
- oracle long raw字段只能插入4K以内的东西
- 探讨:Oracle存储过程中不能有建表指令吗???
- 求助,怎么在p4上安装oracle9i AS?
- Oracle 8.0.5 一个表最多能有多少个字段?一个视图呢?
- 【求分析和解决】Oracle 先排序(order by),后(rownum=1),再锁一行的问题
- 求 oracle 10g 资料
- 关于ORACLE的数据导出到SQL
这上面的update语句是正确的,我已经在sqlplus下测试过。为什么你的就出问题了?!
SQL> create table a(dbh varchar2(10),dz varchar2(10));
Table created
SQL> insert into a values('a','bbbb');
1 row inserted
SQL> create table b(dbh varchar2(10),dz varchar2(10));
Table created
SQL> insert into b values('a','cccc');
1 row inserted
SQL> select * from a;
DBH DZ
---------- ----------
a bbbb
SQL> select * from b;
DBH DZ
---------- ----------
a cccc
SQL>
SQL> UPDATE B
2 SET DZ=DZ||(SELECT A.DZ
3 from A
4 where A.DBH=B.DBH);
1 row updated
SQL> select * from b;
DBH DZ
---------- ----------
a ccccbbbb
是的哟UPDATE B
SET DZ=DZ||(SELECT A.DZ
from A
where A.DBH=B.DBH); 确实是正确的哟,你只怎样执行的呀,怎么会有这样的错。
这是我的执行结果SQL> UPDATE B
2 SET DZ=DZ||(SELECT A.DZ
3 from A
4 where A.DBH=B.DBH);
SET DZ=DZ||(SELECT A.DZ
*
错误位于第2行:
ORA-00936: 缺少表达式
在oracle SQL worksheet和在PLSQL Developer运行都有一样的错误如下~~~~~~~~~~~~~~~~`SQLWKS> UPDATE B
2> SET DZ=DZ||(SELECT A.DZ
3> from A
4> where A.DBH=B.DBH);
SET DZ=DZ||(SELECT A.DZ
*
ORA-00936: 缺少表达式
可能的原因是 当前用户是否有update的权限?
SET DZ=DZ||(SELECT A.DZ
from A
where A.DBH=B.DBH); 这种个SQL语句本身就已经存在问题了如果里面那个子查询返回多条查询结果肯定是会报错!
SET DZ=DZ||(SELECT A.DZ
from A
where A.DBH=B.DBH); 这个SQL语句麻烦那些只建了一条数据的同道们再多建几条数据试试就会发现它是一个错误的SQL语句了
set B.DZ=B.DZ||A.DZ
from A,B
where A.DBH=B.DBH
楼主的这个SQL有问题噢!UPDATE可以用FROM吗?
Table created
SQL> insert into a values('a','bbbb');
1 row inserted
SQL> create table b(dbh varchar2(10),dz varchar2(10));
Table created
SQL> insert into b values('a','cccc');
1 row inserted
SQL> select * from a;
DBH DZ
---------- ----------
a bbbb
SQL> select * from b;
DBH DZ
---------- ----------
a cccc
SQL>
SQL> UPDATE B
2 SET DZ=DZ||(SELECT A.DZ
3 from A
4 where A.DBH=B.DBH);
1 row updated
SQL> select * from b;
DBH DZ
---------- ----------
a ccccbbbb
FROM a,
b
WHERE a.DBH = B.DBH)
SET B.DZ = B.DZ ||A.DZ
楼主可以试试这个SQL语句,注意a,b两表须是一对一的,如果是一对多就比如说父表与子表之间的关系那么你只能对子表进行更改不能对父表进行更改因为子表会返回多条与父表对应的数据行