Tôi có một tập lệnh SQL để tạo một gói với một chú thích có chứa dấu và (&). Khi tôi chạy tập lệnh từ SQL Plus, tôi được nhắc nhập giá trị thay thế cho chuỗi bắt đầu bằng &. Làm cách nào để tắt tính năng này để SQL Plus bỏ qua ký hiệu và?Làm cách nào để bỏ qua các ký hiệu trong một tập lệnh SQL chạy từ SQL Plus?
Trả lời
Điều này có thể làm việc cho bạn:
set define off
Nếu không dấu và cần phải được ở phần cuối của một chuỗi,
'StackOverflow &' || ' you'
EDIT: Tôi đã nhấp hạnh phúc khi lưu ... Đây được tham chiếu từ một số blog.
Theo this nice FAQ có một vài giải pháp.
Bạn cũng có thể thoát khỏi dấu và với ký tự gạch chéo \
nếu bạn có thể sửa đổi nhận xét.
Thoát sau dấu chéo không hoạt động trong SQL * Plus hoặc SQLDeveloper –
@JimTough Sau khi kích hoạt nó bằng 'đặt thoát trên ' –
Nếu đôi khi bạn sử dụng các biến thay thế, bạn có thể không muốn tắt xác định. Trong những trường hợp này, bạn có thể chuyển đổi dấu và từ số tương đương của nó như trong || Chr(38) ||
hoặc nối nó dưới dạng một ký tự đơn lẻ như trong || '&' ||
.
Kịch bản cụ thể là gói có nguồn bao gồm dấu và trong nhận xét. Tôi không thấy làm thế nào tôi sẽ sử dụng nối hoặc thay thế cho điều này. – JoshL
JoshL, bạn là chính xác tôi chỉ liệt kê này cho đầy đủ. Nó liên quan đến câu hỏi của bạn mặc dù nó không trực tiếp trả lời câu hỏi cụ thể của bạn. –
Nó thực sự đã giúp tôi. –
tôi giải quyết với mã bên dưới:
set escape on
và đặt một \ cạnh & trong trái 'value_\&_intert'
ATT
Điều này làm việc cho tôi. Tôi đã sử dụng lệnh 'bình luận trên cột tablename.columnname là' chiến tranh '|| chr (38) || 'peace'' nhưng nó đã cho tôi lỗi' ORA-01780: chuỗi chữ bắt buộc'. – mrswadge
Bạn có thể thiết lập các ký tự đặc biệt, mà là nhìn cho khi thực hiện của một tập lệnh, với một giá trị khác bằng cách sử dụng SET DEFINE <1_CHARACTER>
Theo mặc định, DEFI Bản thân chức năng NE đang bật và được đặt thành &
Có thể tắt chức năng này - bằng cách đặt giá trị này thành giá trị khác. Hãy rất ý thức về những dấu hiệu bạn đặt nó. Trong ví dụ dưới đây, tôi đã chọn ký tự #, nhưng lựa chọn đó chỉ là một ví dụ.
SQL> select '&var_ampersand #var_hash' from dual;
Enter value for var_ampersand: a value
'AVALUE#VAR_HASH'
-----------------
a value #var_hash
SQL> set define #
SQL> r
1* select '&var_ampersand #var_hash' from dual
Enter value for var_hash: another value
'&VAR_AMPERSANDANOTHERVALUE'
----------------------------
&var_ampersand another value
SQL>
Gần đây tôi đã sử dụng phương pháp này. Tôi thích nó vì nó không yêu cầu tôi thay đổi nội dung của các gói PL/SQL của tôi. – Drumbeg
bộ xác định tắt < - Đây là giải pháp tốt nhất mà tôi tìm thấy
Tôi cũng đã cố gắng ...
bộ xác định}
tôi đã có thể chèn nhiều hồ sơ có chứa ký tự dấu và '&' nhưng tôi không thể sử dụng ký tự '}' vào văn bản Vì vậy, tôi đã quyết định sử dụng "đặt định nghĩa tắt" và mọi thứ hoạt động như mong muốn.
- 1. SQL * Plus không thực thi các tập lệnh SQL mà Nhà phát triển SQL thực hiện
- 2. Chạy tệp tập lệnh SQL từ PowerShell
- 3. Làm thế nào để bạn thực hiện SQL từ bên trong một tập lệnh bash?
- 4. Microsoft SQL Server Management Studio chạy tập lệnh từ bên trong một tập lệnh
- 5. Làm cách nào để xuất dữ liệu từ SQL Server 2008.2010 trong DML (tập lệnh SQL)?
- 6. chèn BLOB qua tập lệnh sql?
- 7. Làm thế nào để chạy truy vấn Oracle với bắt đầu/kết thúc trong SQL * Plus?
- 8. SQLite - Chạy tập lệnh SQL nhiều dòng từ tệp?
- 9. Làm cách nào để chạy tập lệnh bằng tệp BAT?
- 10. Mã hóa một cột trong SQL 2000 qua mã hoặc tập lệnh SQL
- 11. Làm cách nào để ngăn chặn cảnh báo T-SQL khi chạy tập lệnh SQL Server 2005?
- 12. Máy chủ SQL - Chạy các tệp tập lệnh lớn
- 13. Làm thế nào để truyền tín hiệu thông qua một tập hợp các tập lệnh?
- 14. Làm cách nào để chạy tập lệnh Perl từ bên trong tập lệnh Perl?
- 15. Tập lệnh để chạy các tập lệnh khác trong sqldeveloper
- 16. Tập lệnh SQL mất nhiều thời gian để chạy
- 17. Làm thế nào để chạy nhiều tập lệnh SQL bằng cách sử dụng một tập tin thực thi?
- 18. Lệnh SỬ DỤNG DATABASE trên SQL PLUS ORACLE 11gr1
- 19. Oracle - Cách tạo tập lệnh từ nhà phát triển sql
- 20. Cách đơn giản để chạy tập lệnh sqlplus từ java
- 21. Các tập lệnh SQL trong Subversion
- 22. Làm cách nào để thực thi một tập hợp các tệp .SQL từ trong SSMS?
- 23. Cách thực thi tập lệnh .sql từ bash
- 24. Mysql: Cách gọi tệp tập lệnh sql từ tệp kịch bản lệnh sql khác?
- 25. Làm cách nào để chạy tập lệnh lô từ trong tập lệnh batch?
- 26. Làm cách nào để gửi tín hiệu SIGINT từ tập lệnh đến tập lệnh? BASH
- 27. MSDeploy với tập lệnh sql
- 28. PyCharm: Làm thế nào để chạy lệnh syncdb và sql?
- 29. Làm cách nào để chạy MinGW bằng một tập lệnh?
- 30. Gọi aspnet_regsql.exe từ tập lệnh SQL
Bạn cũng có thể chỉ định điều này trong tệp thiết lập hồ sơ trang web glogin.sql hoặc tệp thiết lập hồ sơ người dùng login.sql –
Đây là giải pháp đơn giản nhất nếu bạn không quan tâm đến các biến thay thế. – Drumbeg