Cách xử lý một dấu nháy đơn trong Oracle SQL


79

Làm cách nào để chèn một bản ghi vào một cột có kiểu dữ liệu varchar có một dấu ngoặc kép trong đó?

Ví dụ : tên là ROBERTvà họ làD'COSTA

Câu trả lời:


151

Sử dụng hai dấu ngoặc kép

SQL> SELECT 'D''COSTA' name FROM DUAL;

NAME
-------
D'COSTA

Ngoài ra, hãy sử dụng phương pháp trích dẫn mới (10g +) :

SQL> SELECT q'$D'COSTA$' NAME FROM DUAL;

NAME
-------
D'COSTA

Điều gì sẽ xảy ra nếu chúng ta cần hai dấu ngoặc kép liên tiếp? Trường hợp này có phải là phương pháp "thay thế" dành cho?
Richard-Degenne

@RichouHunter Bạn sẽ sử dụng bốn dấu nháy đơn: 'D''''COSTA' => D''COSTA. Ngoài ra:q'$D''COSTA$'
Vincent Malgrat

Cảm ơn, điều này đã giúp tôi! Để tham khảo, đây là một tài liệu Oracle khác về cú pháp trích dẫn thay thế cho các ký tự văn bản đọc tốt hơn một chút so với tài liệu PL / SQL được liên kết.
DanK

@Dank Tôi đồng ý, tham chiếu SQL rõ ràng hơn tài liệu PL / SQL về chủ đề này (tôi đã cập nhật liên kết lên phiên bản mới nhất).
Vincent Malgrat

1

Tôi thấy câu trả lời ở trên gây ra lỗi với Oracle SQL, bạn cũng phải sử dụng dấu ngoặc vuông, bên dưới;

SQL> SELECT Q'[Paddy O'Reilly]' FROM DUAL;


Kết quả: Paddy O'Reilly

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.