PLS-00103:当期望以下之一时遇到符号“文件结束”:: =。 (%;

时间:2010-03-19 12:19:33

标签: oracle ant plsql

无法从 ant的sql任务

中运行SQL
BEGIN
   DBMS_AQADM.CREATE_QUEUE_TABLE(
   queue_table => 'MY_QUEUE',
   queue_payload_type => 'sys.aq$_jms_map_message');

   DBMS_AQADM.CREATE_QUEUE(
   queue_name => 'MY_QUEUE',
   queue_table => 'MY_QUEUE');

   DBMS_AQADM.START_QUEUE (
   queue_name => 'MY_QUEUE');

END;
/

有以下错误:

CreateMyQueue:
      [sql] Executing resource: /u1/bin/sql/createMyQueue.sql
      [sql] Failed to execute:   BEGIN DBMS_AQADM.CREATE_QUEUE_TABLE( queue_table => 'MY_QUEUE', queue_payload_type => 'sys.aq\$_jms_map_message')

BUILD FAILED
/u1/bin/.tools/build.xml:194: java.sql.SQLException: ORA-06550: line 1, column 118:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
   := . ( % ;

SQL有什么问题?

1 个答案:

答案 0 :(得分:3)

这是解决方案!
http://www.javaddicts.net/blog/index.php/2005/06/13/executing-oracle-plsql-from-ant/
应使用以下参数
定界符= “/”
delimitertype = “行”

<project name="SWPDEPLOYMENT" basedir="." default="all">
   <target name="createMyQueue">
      <sql driver="oracle.jdbc.driver.OracleDriver"
           url="${sqlurl}"
           userid="${userid}"
           password="${pwd}"
           print="yes"
           delimiter="/"
           delimitertype="row"
           >
        <fileset dir=".">
           <include name="createMyQueue.sql"/>
        </fileset>
      </sql>
   </target>