【问题标题】:How to create insert statements script from two tables如何从两个表创建插入语句脚本
【发布时间】:2021-01-12 17:08:29
【问题描述】:

我正在使用 oracle SQL,我需要向多个用户插入数据,但我需要先创建插入语句并仅替换第一个插入语句中的用户 ID,如下所示:

1- 这是插入语句:

    INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U,
    D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,
    LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S ) 
   VALUES ( 'JAD', 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112
    , 1, 'ZYAD', 'I', 2); 

COMMIT;

2- 我只需要生成插入语句并替换 `

USER_ID

并从下表中选择 USER_ID

SELECT USER_ID 
FROM USERS 
WHERE USER_FUNCTION = 'DOCMDOC'

我该怎么做?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    我想你只是想要insert . . . select:

    INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U,
        D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,
        LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S ) 
       SELECT u.id, 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112
        , 1, 'ZYAD', 'I', 2
       FROM Users
       WHERE USER_FUNCTION = 'DOCMDOC';
    

    【讨论】:

      【解决方案2】:

      您可以为多个用户使用简单的 for-loop plsql 块并修改您想要的内容:

      begin
      for i in (SELECT USER_ID FROM USERS WHERE USER_FUNCTION = 'DOCMDOC')
      loop
      INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U,
          D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,
          LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S ) 
         VALUES ( i.USER_ID, 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112
          , 1, 'ZYAD', 'I', 2); 
      end loop;
      end; 
      

      或者插入...仅针对这种情况选择。

      INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U, D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S ) 
      SELECT USER_ID, 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112, 1, 'ZYAD', 'I', 2 FROM USERS WHERE USER_FUNCTION = 'DOCMDOC';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 2019-12-24
        • 2017-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-23
        相关资源
        最近更新 更多