创建控制文件时出现语法错误

时间:2016-10-07 06:55:52

标签: oracle shell sql-loader

我编写了一个代码来在shell脚本中创建动态控制文件。当我使用MOD函数用于字段thread_val时,我收到语法错误。

   echo 'LOAD DATA' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'APPEND' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'INTO TABLE TJX_MARKDOWN_AUTHORIZATION' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'FIELDS TERMINATED BY ","' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'TRAILING NULLCOLS' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo '(' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'FILE_SEQ_NO              "' ${exec_seq} '",' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'TRANSACTION_TYPE         position(1),' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'WEEK                     ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'FISCAL_CC_YY             date' \'YYYYMMDD\' ',' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'STORE                    ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'DEPT                     ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'FROM_PRICE               ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'TO_PRICE                 ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'ITEM                     ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'ESTIMATED_QTY            ,' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'STATUS                   CONSTANT "U",' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo 'THREAD_VAL   "(MOD(:STORE, '${max_thread_val)' + 1)"' >> $CTL_DIR/tjx_markdown_auth_upld.ctl
   echo ')' >> $CTL_DIR/tjx_markdown_auth_upld.ctl

1 个答案:

答案 0 :(得分:0)

在max_thread_val之后插入},更改)位置,如下所示;

   echo 'THREAD_VAL   "(MOD(:STORE, '${max_thread_val}') + 1)"' >> $CTL_DIR/tjx_markdown_auth_upld.ctl