Tôi tiếp tục quên điều này và quay lại với nó một lần nữa! Tôi nghĩ câu trả lời tốt nhất là sự kết hợp của các phản hồi được cung cấp cho đến nay.
Thứ nhất, & là tiền tố biến trong sqlplus/sqldeveloper, do đó vấn đề - khi nó xuất hiện, nó được cho là một phần của tên biến.
SET DEFINE OFF sẽ ngừng sqlplus giải thích & theo cách này.
Nhưng nếu bạn cần sử dụng biến sqlplus và chữ & ký tự?
- Bạn cần SET DEFINE ON để làm biến làm việc
- Và SET ESCAPE ON để thoát khỏi công dụng của &.
ví dụ:
set define on
set escape on
define myvar=/forth
select 'back\\ \& &myvar' as swing from dual;
Tạo:
old 1: select 'back\\ \& &myvar' from dual
new 1: select 'back\ & /forth' from dual
SWING
--------------
back\ & /forth
Nếu bạn muốn sử dụng một ký tự thoát khác nhau:
set define on
set escape '#'
define myvar=/forth
select 'back\ #& &myvar' as swing from dual;
Khi bạn thiết lập một nhân vật thoát cụ thể, bạn có thể thấy 'SP2-0272: thoát ký tự không thể là chữ và số hoặc khoảng trống '. Điều này có thể có nghĩa là bạn đã có nhân vật trốn thoát được định nghĩa, và mọi thứ trở nên tự tham khảo khủng khiếp. Cách làm sạch để tránh vấn đề này là để thiết lập thoát khỏi đầu tiên:
set escape off
set escape '#'
np! như tôi đã nói, tôi tiếp tục quên điều này, rất vui khi có cơ hội ghi lại 'câu trả lời toàn diện' ;-) – tardate
Câu hỏi thường gặp về SQL * này (http://www.orafaq.com/wiki/SQL*Plus_FAQ# How_does_one_disable_interactive_prompting_in_SQL.2APlus.3F) cung cấp câu trả lời tương tự. – DavidRR