Как выполнить пакет Oracle (с параметрами) с помощью задачи ANT SQL - PullRequest
0 голосов
/ 23 марта 2011

Привет У меня есть пакет Oracle, в котором мне нужно передать разные имена файлов - a.rdt, b.rdt и т. Д.

Я сохранил пакет в файл SQL, и этот файл содержит следующие данные: -

conn fast / fast @ rdev

exec COM_READING_FROM_FILE_PKG.COM_READ_DATA_TO_TABLE_PRC ('DATA', 'DEPT.rdt', chr (8), null);

Далее я должен выполнить пакет oracle из ANT, используя задачу SQL и передавая различные файлы в качестве параметров.

Я сталкиваюсь с ОШИБКОЙ при выполнении команды исполняемого пакета, описанной ниже в SQL-запросах Ant. Просьба предложить помощь. Спасибо.

=====

    <echo> Executing Package COM_READING_FROM_FILE_PKG to upload data from RDT files to Tables... </echo>
  <mkdir dir="log"/>

<sql     
        driver="oracle.jdbc.driver.OracleDriver"   
        url="jdbc:oracle:thin:@172.16.88.68:1521:rdev"   
        userid="rapid"    
        password="rapid"     
        print="yes"     
        classpathref="antclasspath">     


        execute COM_READING_FROM_FILE_PKG.COM_READ_DATA_TO_TABLE_PRC('${path}',${file},chr(8),null);

    </sql>  

1 Ответ

0 голосов
/ 30 марта 2011
            <!-- Generate an sql file with tags -->
            <!-- declare begin COM_READ_DATA_TO_TABLE(@DIR_NAME@, @FILE_NAME@, @SEPTTEXT@, NULL); end; -->
            <!-- replace @DIR_NAME@ with dir_name, @FILE_NAME with file  -->
    <for param="execfile" delimiter="${line.separator}" >
      <path>
        <fileset dir="data" includes="*.rdt"/>
      </path>
      <sequential>
        <propertyregex property="file" 
                   input="@{execfile}"
                   regexp=".*\\(.*)" select="\1" 
                   override="yes"/>

              <echo> ${file} </echo>

            <!-- Generate an sql file with tags -->
            <!-- declare begin COM_READ_DATA_TO_TABLE(@DIR_NAME@, @FILE_NAME@, @SEPTTEXT@, NULL); end; -->
            <!-- replace @DIR_NAME@ with dir_name, @FILE_NAME with file  -->
          <concat destfile="sql/EXEC_RDT.sql">
            Declare Begin
            COM_READING_FROM_FILE_PKG.COM_READ_DATA_TO_TABLE_PRC('DATA','${file}',chr(8),null);
            End;
            /
          </concat>

        <exec executable="sqlplus" output="./log/dept.log">
            <arg line="rapid/rapid@rdev @sql/EXEC_RDT.sql"/>
        </exec>
      </sequential>
    </for>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...