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

Truy vấn thủ tục được lưu trữ Oracle như không hoạt động với con trỏ

Bạn đang sử dụng dấu ngoặc kép không cần thiết:

SQL> declare
  2      mat_id        varchar2(100) := 'X';
  3      searchString  varchar2(100) := ''''||mat_id||'%''';
  4      searchString2 varchar2(100) := ''||mat_id||'%';
  5      num number;
  6  begin
  7      select count(1)
  8      into num
  9      from dual
 10      where 'X' like searchString;
 11      --
 12      dbms_output.put_line('1. num= ' || num);
 13      --
 14      select count(1)
 15      into num
 16      from dual
 17      where 'X' like searchString2;
 18      --
 19      dbms_output.put_line('2. num= ' || num);
 20  end;
 21  /
1. num= 0
2. num= 1

PL/SQL procedure successfully completed.

SQL>

Trích dẫn kép của bạn có thể hữu ích nếu bạn sử dụng SQL động, nhưng trong truy vấn tĩnh của bạn, điều đó có nghĩa là bạn đang tìm kiếm một mẫu chứa dấu ngoặc kép như một phần của chuỗi cần tìm.



  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ó cách nào tốt nhất để tránh thực thi quá trình nhiều lần trong Oracle không?

  2. Lặp lại danh sách các cột trong bảng và áp dụng một truy vấn cho chúng

  3. truy vấn con vô hướng trong câu lệnh if Điều kiện trong PL / SQL

  4. Tại sao việc truy vấn cơ sở dữ liệu tuân thủ JDBC từ Oracle không dễ dàng như chiếc bánh?

  5. Sử dụng ký tự đại diện trong bản cập nhật?