我如何从1个表中提取数据子集并将其放入第2个表中?

时间:2014-10-28 17:14:38

标签: java sql groovy

我对Groovy不太熟悉,但我需要从一个大表中获取一个子集(大约5000行)并将其插入到另一个已存在的表中。应删除第二个内容,并且在进程结束时应仅包含表1中的数据子集。这些表位于AS-400数据库中。我不确定这是否会产生影响。在此先感谢您的帮助。

以下是我到目前为止,但它可能甚至没有接近正确。它要求目标和源列,正在使用的数据库的connectionId以及定义的集合表是什么表。

<?xml version="1.0" encoding="UTF-8"?>
<custom-script-transformer name="Subset Data Load" table="false">
   <description>Refresh target table columns with source table columns</description>
   <category>SWBC</category>
   <fieldvar name="Target_Column">
      <description>Column to be updated</description>
   </fieldvar>
   <fieldvar name="Source_Column">
      <description>source column</description>
   </fieldvar>
   <paramvar name="dsConnId" dataType="string">
      <description>Defined set connection id</description>
      <default-value>default</default-value>
   </paramvar>
   <paramvar name="dsTable" dataType="string">
      <description>Defined set table</description>
   </paramvar>
   <script>
      import groovy.sql.Sql;

      if ( dsConnId == 'default' ) {
         sql = new Sql(datasource);
      } else {
         sql = new Sql(connectionProviderFactory.newConnectionProvider(dsConnId).getDataSource());
      }
      q = sql.getDataSource().getConnection().getMetaData().getIdentifierQuoteString();

      def rows = sql.rows("select #Source_Column from #dsTable")
      assert rows.size() == 5000

      #Target_Column = #Source_Column;
      sql.close();
   </script>
</custom-script-transformer>

0 个答案:

没有答案