Oracle多表联合更新
以下是在后台更新易拓ERP数据库时遇到的一个问题:
1.在DB14数据库中将料件号P44开头,并且品名为"塑料袋"的料件改为消耗性料件.
这个简单: UPDATE DB14.ima_file SET ima70 = ‘Y’ WHERE ima01 like ‘P44%’ AND ima02 = ‘塑料袋’;
2.在以B021开头的工单中,相应的下介料件的消耗性状态也作相应变更. 这个麻烦涉及bmb表和ima表才能确定要更改的记录(因为限定了品名).不能直接用UPDATE,最后写了一个存储过程如下:
DECLARE CURSOR my_table IS (SELECT bmb01,bmb03
from DB14.bmb_file,DB14.ima_file
WHERE bmb03 = ima01
AND bmb01 LIKE 'B021%'
AND bmb03 LIKE 'P44%' AND ima02 = '塑料袋');
BEGIN
FOR tab IN my_table LOOP
UPDATE DB14.bmb_file
SET bmb15 = 'Y'
WHERE bmb01 = tab.bmb01 AND bmb03 = tab.bmb03;
END LOOP;
END;
这样一来要是还有相同条件下的其他表要更新的话,可直接在FOR LOOP里面加上.
最后,其实我也是傻了.单就解决现有问题而言完全可以:
UPDATE DB14.bmb_file SET bmb15 = 'Y'
WHERE bmb01 LIKE 'B021%'
AND bmb03 IN (SELECT ima01
from DB14.ima_file
相关文档:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)(SID_DESC =
&nb ......
Username
Password
Description
See Also
CTXSYS
CTXSYS
The Oracle Text account
Oracle Text Reference
DBSNMP
DBSNMP
The account used by the Management Agent component of Oracle Enterprise Manager to&nb ......
简单描述一下在windows的同一用户下,安装Oracle的9i、10g和11g的方法。
Oracle在windows平台下的安装是所有平台中最简单的,基本上不需要进行任何额外的处理就可以成功的安装,可以说没有什么技术含量。
不过在同一台机器的同一个用户上同时安装两个不同版本的数据库就需要一定的技巧了。这里简单描述一下在同时 ......
package cn.edu.bit.test;
import java.sql.*;
public class Jdbc {
public static void main(String[] args)
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
System.out.p ......
SELECT a.ADDRESS,
sql_text,
executions,
rows_processed,
cpu_time,
a.DISK_READS,
  ......