Có thể sử dụng mục nhập TNS đủ điều kiện bằng sqlldr đi kèm với Oracle 10/11 không?Có thể cho Oracle sqlldr chấp nhận một mục nhập TNS như một trình độ thể hiện trong Oracle 10 và 11 không?
Ví dụ, trong sqlplus:
sqlplus user/[email protected](description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl))) @script.sql
Nhưng sử dụng sqlldr (SQL Loader) có vẻ như là vấn đề với việc sử dụng các mục nhập TNS trực tiếp. Cụ thể là:
sqlldr user/[email protected](description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl))) bad='bad_file.txt' control='control.ctl' data='data.txt' log='log.txt' direct='true'
Dưới đây là thông báo lỗi sản xuất:
LRM-00116: syntax error at 'address' following '('
SQL*Loader: Release 11.2.0.1.0 - Production on Tue Sep 13 15:41:54 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
SQL*Loader-100: Syntax error on command-line
Cố gắng để đóng gói các mục TNS trong dấu ngoặc kép tạo ra lỗi tương tự.
Đã xem tài liệu sqlldr và cố gắng sử dụng đối số dòng lệnh 'userid' để không có kết quả. Cụ thể:
sqlldr userid='user/[email protected](description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl)))' bad='bad.txt' control='control.ctl' data='data.txt' log='log.txt' direct='true'
LRM-00116: syntax error at '[email protected](' following '='
SQL*Loader: Release 11.2.0.1.0 - Production on Tue Sep 13 15:44:17 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
SQL*Loader-100: Syntax error on command-line
Có ý nghĩa rằng Oracle hy vọng sẽ ép buộc người dùng vào một cá thể cục bộ để giảm thiểu I/O trong việc đẩy dữ liệu đến máy chủ từ xa. Nhưng độ lệch trong cú pháp được hỗ trợ không trực quan lắm. Bất kỳ ai khác cũng gặp phải sự cố tương tự?
tôi nhận được lỗi tương tự như nếu không có sự "TNS : " – leo