Tôi sử dụng nhà điều hành cuộc gọi, &
, như Keith Hill đã đề xuất với câu hỏi, Cách chạy tệp EXE trong PowerShell với các tham số có dấu cách và dấu ngoặc kép.
& 'path\sqlplus.exe' 'system/[email protected] as sysdba'
Tôi đã đặt tên người dùng, mật khẩu trong dấu ngoặc kép do có khoảng trắng.
Để bắt đầu một tập lệnh, tôi thêm một tham số khác như sau:
& 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'
Nếu bạn đang nhận được lỗi ORA-12154 và bạn biết rằng những người dùng khác đã thiết lập kết nối (ngụ ý rằng trình nghe cơ sở dữ liệu đang chạy đúng); Sau đó, tôi sẽ kiểm tra xem SQL * Plus có thể tìm thấy tệp tnsname của tôi hay không.
Nhiệm vụ đầu tiên của tôi là xem liệu tôi có thể tnsping như sau trong Windows cmd.exe hay không:
tnsping orcl
Nó sẽ xác nhận rằng một kết nối có thể (hoặc không thể được thiết lập).
Nếu không thể, tôi sẽ kiểm tra xem biến môi trường, ORACLE_HOME, đã được đặt chưa. SQL * Plus sử dụng điều này để tìm tệp tnsname.ora.
Nếu nó không được đặt, tôi sẽ thực thi câu lệnh này trong PowerShell (để thiết lập biến môi trường này):
[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")
Tiếp theo, tôi sẽ thử lại tnsping (đã xác định ở trên).
Sau khi thành công, tôi sẽ thử thực hiện lại lệnh chạy tập lệnh ở trên.