Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách chèn một chuỗi có chứa &

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 câu trả lời được cung cấp cho đến nay.

Thứ nhất, &là tiền tố biến trong sqlplus / sqldeveloper, do đó có vấn đề - khi nó xuất hiện, nó được mong đợi là một phần của tên biến.

SET DEFINE OFF sẽ ngừng phiên dịch sqlplus và theo cách này.

Nhưng điều gì sẽ xảy ra nếu bạn cần sử dụng các biến sqlplus chữ &ký tự?

  • Bạn cần BẬT ĐỊNH NGHĨA để các biến hoạt động
  • Và ĐẶT BẬT CẢM XÚC để thoát khỏi việc sử dụng &.

ví dụ:

set define on
set escape on

define myvar=/forth

select 'back\\ \& &myvar' as swing from dual;

Sản xuất:

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:

set define on
set escape '#'

define myvar=/forth

select 'back\ #& &myvar' as swing from dual;

Khi bạn đặt một ký tự thoát cụ thể, bạn có thể thấy 'SP2-0272:ký tự thoát không được là chữ và số hoặc khoảng trắng'. Điều này có thể có nghĩa là bạn đã có ký tự thoát được xác định và mọi thứ trở nên tự tham chiếu một cách khủng khiếp. Cách rõ ràng để tránh vấn đề này là trước tiên hãy thực hiện thoát:

set escape off
set escape '#'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tìm nạp dữ liệu từ con trỏ trong Oracle bằng For Loop

  2. Tên cột bảng Oracle có khoảng trắng

  3. Lighty cho Oracle

  4. SEC_CASE_SENSITIVE_LOGON Không được dùng nữa trong 12c

  5. ORA-12705:Không thể truy cập tệp dữ liệu NLS hoặc môi trường không hợp lệ