Проблема передачи параметров в файл Oracle SQL внутри сценария оболочки

У меня действительно странная проблема

Мы вызываем один файл.sql с параметрами внутри файла хоста, sql имеет 5 параметров

sqlplus -s /nolog >> $APPL/$APPLLOG/l$req_id.req <<!
  connect $userpass
   @$XXBC_TOP/sql/POFTPGEN.sql $req_id $filename $utl_file_dir $vendor_num $org_id
!`

когда я печатаю с помощью echo, все параметры печатаются в файле журнала.

Проблема в файле POFTPGEN.sql &4 получает оба значения $vendor_num $org_id например &4 проходит как 1031 506 и пятый параметр проходит как null Может кто-нибудь помочь мне понять, что я здесь делаю не так.

Ожидаемое значение &4 должно быть 1031, а &5 должно быть 506

Текущее поведение &4 is 1031 506 и &5 null

Добавление части SQL

SET verify off;
PROMPT request id = &1
PROMPT zip file name = &2
PROMPT utl_file_dir = &3
PROMPT vendor number = &4
-- Added the parameter Org_Id by Yalla S. on 30-MAY-06
PROMPT Org_Id =&5
--
SELECT TO_CHAR (SYSDATE, 'DD-Mon-RR HH24:MI:SS') enter_time
FROM   DUAL;
DEFINE req_id = &1
EXECUTE _set_client_info(&1);
PROMPT *** Current org_id...
SELECT USERENV ('CLIENT_INFO') Operating_Unit
FROM   DUAL;
PROMPT
--
WHENEVER oserror exit failure rollback;
WHENEVER sqlerror exit failure rollback;
--
DEFINE zipfilename = '&2'
DEFINE utl_file_dir = '&3'
DEFINE vendor_number = '&4'
DEFINE org_id =&5
--
--      Start of Extract File Creation -- PH.txt and PL.txt
--

DECLARE
   --
   PROGRAM_NAME      CONSTANT VARCHAR2 (30)     := 'POFTPGEN';
   P_PROC_MSG                 VARCHAR2 (100)    := NULL;
   --
   -- utl_file handlers
   uFileHandle_poh         UTL_FILE.file_type;
   uFileHandle_pol         UTL_FILE.file_type;
   --
   vZipFileName   CONSTANT VARCHAR2 (100)       := '&2';
   vFilePath       CONSTANT VARCHAR2 (100)      := '&3';
   vVendorNumber   CONSTANT VARCHAR2 (30)       := '&4';
   v_org_id                 NUMBER             := &5;

   vpohFile     CONSTANT VARCHAR2 (30)       := 'STMPH.TXT';
   vpolFile     CONSTANT VARCHAR2 (30)       := 'STMPL.TXT';
   --
   vpohRec               VARCHAR2 (1000)     := NULL;
   vpolRec               VARCHAR2 (1000)     := NULL;
   --
   vFldsep          CONSTANT VARCHAR2 (1)       := ',';
   vFldQCsep        CONSTANT VARCHAR2 (2)       := '",';
   vFldCQsep        CONSTANT VARCHAR2 (2)       := ',"';

Сообщения журнала

вызов SYMPOFTPGEN.sql для создания отдельных файлов...

req_id = 52964325

filename=R12SYMPOCN20170926@070020.ZIP

utl_file_dir = / data / SEBSD / xxbc_data / data / PO / CN / отправить ftpvendornum =

org_ID =6784

Продавец № 15163

Связано.

id запроса = 52964325

имя файла zip = R12SYMPOCN20170926@070020.ZIP

utl_file_dir = / data / SEBSD / xxbc_data / data / PO / CN / send

Введите значение 4: номер поставщика = 15163 6784

Введите значение для 5:

Пользователь запросил прерывание или EOF обнаружен.

0 ответов

Другие вопросы по тегам