更正:
用存储过程的那句话敲错了
sql_stmt := 'UPDATE ' || V_TABLE.TABLE_NAME || ' A SET a=(SELECT b2 FROM b WHERE b.b1=a.a1) WHERE ROWNUM<1000;
用存储过程的那句话敲错了
sql_stmt := 'UPDATE ' || V_TABLE.TABLE_NAME || ' A SET a=(SELECT b2 FROM b WHERE b.b1=a.a1) WHERE ROWNUM<1000;
解决方案 »
- 数据导入问题!
- windows server 2008 R2 x64(64位)系统下安装Oracle10g,安装窗口消失
- 在指定用户下执行SQL语句
- 急需帮助,单位生产库的表被删除几行了。急需恢复
- 如何建立为新建的oracle服务端建立新的用户
- 怎么样根据当前SYSDATE,得出每个月1日的date??
- 数据库表更新问题—鸡毛信(急啊!)
- Net服务名配置时,出现TNS:listener could not find instance错误,如何解决?
- 请高手指教,Developer 2000的问题!
- 我在做数据库恢复过程时出现如下错误???
- ==如何通过PL/Sql语句获得当前数据库中所有用户名?===
- 就是我的sql+是oracle 9,但是那些builders是装的oracle8,没有装在一个目录里,现在sql+可以连远程数据库,但是那些builders不可以,怎么
sql_stmt := 'UPDATE ' || V_TABLE.TABLE_NAME || ' A SET a!=(SELECT b2 FROM b WHERE b.b1=a.a1) WHERE ROWNUM<1000; '
================================================================ok?
sql_stmt := 'UPDATE ' || V_TABLE.TABLE_NAME || ' a SET a1 = (SELECT b2 FROM b WHERE b.b1=a.a1) WHERE ROWNUM<1000';
----------
2
2
2SQL> select * from b; B1 B2
---------- ----------
1 5
2 8SQL> declare
2 v_sql varchar2(100);
3 v_tablename varchar2(10) :='a';
4 begin
5 v_sql :='update ' || v_tablename || ' set a1=(select b2 from b where b.b1
=a.a1) where rownum<=2';
6 execute immediate v_sql;
7 end;
8 /PL/SQL procedure successfully completed.SQL> select * from a; A1
----------
8
8
2SQL> select * from b; B1 B2
---------- ----------
1 5
2 8你的“sql_stmt := 'UPDATE ' || V_TABLE.TABLE_NAME || ' A SET a=(SELECT b2 FROM b WHERE b.b1=a.a1) WHERE ROWNUM<1000;”
中“V_TABLE.TABLE_NAME”变量存什么,不是已经有表名“A”了吗?难道是表的owner,那也不应该起这个“TABLE_NAME”名字呀。