2016-05-27 3 views
1

Я пытаюсь использовать SQL Loader для загрузки данных в таблицу из файла csv.SQL * Loader-128: не удалось начать сеанс

< --- load.sh ->

ORACLE_HOME=/oracle/OraHome11g 
export ORACLE_HOME 
PATH=/oracle/OraHome11g/bin 
export PATH 
$ORACLE_HOME/bin/lsnrctl start 
sqlldr RETAIL_FIN/[email protected] control=LBR.ctl 

< --- load.ctl ->

load data 
    infile '/home/tclfin/LBR.ctl' 
    into table LOAN_BALANCE_MASTER_INT 
    fields terminated by ',' optionally enclosed by '"' 
    (ACCOUNT_NO,CUSTOMER_NAME,LIMIT) 

После выполнения сценария я получаю следующее сообщение об ошибке:

LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production on 27-MAY-2016 16:14:34 

Copyright (c) 1991, 2010, Oracle. All rights reserved. 

TNS-01106: Listener using listener name LISTENER has already been started 

SQL*Loader: Release 11.2.0.2.0 - Production on Fri May 27 16:14:34 2016 

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 

SQL*Loader-128: unable to begin a session 
ORA-01017: invalid username/password; logon denied 

Благодаря

ответ

6

$ в вашем пароле рассматривается как ссылка на переменную среды или в этом случае $1 как первый аргумент сценария, который, вероятно, является нулевым. Фактически используемый пароль передается Oracle: RETAIL_FIN23, а не RETAIL_FIN$123.

Ваш сценарий должен бежать знак $:

sqlldr RETAIL_FIN/RETAIL_FIN\[email protected] control=LBR.ctl 

Вы можете увидеть тот же эффект, довольно просто:

$ echo sqlldr RETAIL_FIN/[email protected] control=LBR.ctl 
sqlldr RETAIL_FIN/[email protected] control=LBR.ctl 
$ echo sqlldr RETAIL_FIN/RETAIL_FIN\[email protected] control=LBR.ctl 
sqlldr RETAIL_FIN/[email protected] control=LBR.ctl 
+0

Спасибо, это сработало. –

Смежные вопросы