首页 > 软件开发 > 数据库 >

如何实现数据库表间通讯

来源:互联网 2023-03-16 23:58:15 版权归原作者所有,如有侵权,请联系我们

数据库搭建的时候,经常有将一个表的数据写到另一个表的需求。今天介绍数据库表之间的通讯,使用存储过程将a表中的数据写入到b表中,实现数据库表之间的通讯。8xA办公区 - 实用经验教程分享!

如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

工具/原料

  • oracle数据库
  • PL/软件SQL

方法/步骤

  • 1

    1.现在有表test1,如下,具体创建过程,请参考百度经验《如何使用PL/SQL软件创建ORACLE表》。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 2

    2、 同样使用建表语句,创建中间表。8xA办公区 - 实用经验教程分享!

    -- Create table8xA办公区 - 实用经验教程分享!

    create table test_temp8xA办公区 - 实用经验教程分享!

    (8xA办公区 - 实用经验教程分享!

    NENGYUAN_NAME VARCHAR2(20),8xA办公区 - 实用经验教程分享!

    CONSUME NUMBER(10,2),8xA办公区 - 实用经验教程分享!

    NENGYUAN_TIME DATE,8xA办公区 - 实用经验教程分享!

    ID NUMBER(4),8xA办公区 - 实用经验教程分享!

    ETYPE VARCHAR2(20)8xA办公区 - 实用经验教程分享!

    )8xA办公区 - 实用经验教程分享!

    tablespace temp8xA办公区 - 实用经验教程分享!

    pctfree 108xA办公区 - 实用经验教程分享!

    initrans 18xA办公区 - 实用经验教程分享!

    maxtrans 2558xA办公区 - 实用经验教程分享!

    storage8xA办公区 - 实用经验教程分享!

    (8xA办公区 - 实用经验教程分享!

    initial 64K8xA办公区 - 实用经验教程分享!

    minextents 18xA办公区 - 实用经验教程分享!

    maxextents unlimited8xA办公区 - 实用经验教程分享!

    );8xA办公区 - 实用经验教程分享!

    8xA办公区 - 实用经验教程分享!

    --Add comments to the table8xA办公区 - 实用经验教程分享!

    comment on table test_temp8xA办公区 - 实用经验教程分享!

    is '中间数据';8xA办公区 - 实用经验教程分享!

    -- Add comments to the columns8xA办公区 - 实用经验教程分享!

    comment on column test_temp.NAME8xA办公区 - 实用经验教程分享!

    is '名';8xA办公区 - 实用经验教程分享!

    comment on column test_temp.liang8xA办公区 - 实用经验教程分享!

    is '量';8xA办公区 - 实用经验教程分享!

    comment on column test_temp.TIME8xA办公区 - 实用经验教程分享!

    is '时间';8xA办公区 - 实用经验教程分享!

    comment on column test_temp.ID8xA办公区 - 实用经验教程分享!

    is '号';8xA办公区 - 实用经验教程分享!

    comment on column test_temp.type8xA办公区 - 实用经验教程分享!

    is '类型';8xA办公区 - 实用经验教程分享!

    8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 3

    查询,建表完毕。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 4

    4、输入SQL语句,插入数据。8xA办公区 - 实用经验教程分享!

    insert into test_temp (NENGYUAN_NAME, CONSUME, NENGYUAN_TIME, ID, ETYPE)8xA办公区 - 实用经验教程分享!

    values ('测试1', 2500, to_date('16-07-2016 20:50:27', 'dd-mm-yyyy hh24:mi:ss'), 110, '110')。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 5

    5、查询数据,写入成功。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 6

    8xA办公区 - 实用经验教程分享!

    6、 创建存储过程,将表test1中的数据,写入test_temp表中。8xA办公区 - 实用经验教程分享!

    8xA办公区 - 实用经验教程分享!

    2、 CREATE OR REPLACE PROCEDURE PRO_test AS8xA办公区 - 实用经验教程分享!

    3、 TYPE REF_CUR IS REF CURSOR;8xA办公区 - 实用经验教程分享!

    4、 C_T REF_CUR;8xA办公区 - 实用经验教程分享!

    5、 R_C TB_TAG_RCV%ROWTYPE;8xA办公区 - 实用经验教程分享!

    6、 STRSQL VARCHAR2(1000);8xA办公区 - 实用经验教程分享!

    7、 St VARCHAR2(50);8xA办公区 - 实用经验教程分享!

    8、 Tt VARCHAR2(50);8xA办公区 - 实用经验教程分享!

    9、 BEGIN8xA办公区 - 实用经验教程分享!

    10、8xA办公区 - 实用经验教程分享!

    11、 St:=to_char(sysdate-1,'YYYY-MM-DD')||' 20:00:00';8xA办公区 - 实用经验教程分享!

    12、8xA办公区 - 实用经验教程分享!

    13、 STRSQL := 'SELECT * FROM test1 WHERE ID>0 ' ;8xA办公区 - 实用经验教程分享!

    14、 OPEN C_T FOR STRSQL;8xA办公区 - 实用经验教程分享!

    15、 LOOP8xA办公区 - 实用经验教程分享!

    16、 FETCH C_T8xA办公区 - 实用经验教程分享!

    17、 INTO R_C;8xA办公区 - 实用经验教程分享!

    18、 EXIT WHEN C_T%NOTFOUND;8xA办公区 - 实用经验教程分享!

    19、 INSERT INTO test_temp8xA办公区 - 实用经验教程分享!

    20、 (nengyuan_name,8xA办公区 - 实用经验教程分享!

    21、 consume,8xA办公区 - 实用经验教程分享!

    22、 nengyuan_time,8xA办公区 - 实用经验教程分享!

    23、 ID,8xA办公区 - 实用经验教程分享!

    24、 etype8xA办公区 - 实用经验教程分享!

    25、 )8xA办公区 - 实用经验教程分享!

    26、 VALUES8xA办公区 - 实用经验教程分享!

    27、 (R_C.name_cn ,8xA办公区 - 实用经验教程分享!

    28、 R_C.TAG_VALUE,8xA办公区 - 实用经验教程分享!

    29、 sysdate,8xA办公区 - 实用经验教程分享!

    30、 R_C.ID,8xA办公区 - 实用经验教程分享!

    31、 R_C.ID8xA办公区 - 实用经验教程分享!

    32、 );8xA办公区 - 实用经验教程分享!

    33、8xA办公区 - 实用经验教程分享!

    34、 LOOP;8xA办公区 - 实用经验教程分享!

    35、 CLOSE C_T;8xA办公区 - 实用经验教程分享!

    36、 COMMIT;8xA办公区 - 实用经验教程分享!

    47、 PRO_test。8xA办公区 - 实用经验教程分享!

    8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 7

    8xA办公区 - 实用经验教程分享!

    7、点击执行存储过程,发现有错误。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 8

    8、检查,选择重新编译,报错“已被编译,但有错误”。8xA办公区 - 实用经验教程分享!

    ang=EN-US>8xA办公区 - 实用经验教程分享!

    8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 9

    9、检查存储过程代码,发现 “ R_C test1%ROWTYPE;”处,将test1写为test,修改后执行正常。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 10

    10、右键点击存储过程“PRO_test”,选择“测试”。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 11

    8xA办公区 - 实用经验教程分享!

    11、点击“开始调试器”,“单步进入”,执行测试该过程,8xA办公区 - 实用经验教程分享!

    span>”,选择“测试”。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 12

    12、输入变量值,进行监视。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 13

    13、逐步执行。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 14

    14、执行完毕,显示如下。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 14
  • 15

    15、我们可以看到表test1中的数据写入了test_temp中,我们实现了功能将一个表写入另一个表,实现了数据库之间的数据通讯。8xA办公区 - 实用经验教程分享!

    如何实现数据库表间通讯8xA办公区 - 实用经验教程分享!

  • 注意事项

    • 注意1:该种方式是基于ORACLE数据库。
    • 注意2:,该种方式采用PL/SQL工具进行的操作。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!8xA办公区 - 实用经验教程分享!


    标签: 数据库

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号