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

ORA-01002:tìm nạp từ chuỗi C ++

Tìm nạp của bạn không thành công vì mở, khai báo và chuẩn bị tất cả không thành công trước thời điểm đó, nhưng bạn đã không kiểm tra bất kỳ lỗi nào từ những thứ đó. Nếu bạn làm vậy, bạn sẽ nhận được ORA-00911: invalid character lỗi, vì điều này:

    strcpy((char *)sql_statement.arr,"select supplierNumber, supplierName ");
    strcat((char *)sql_statement.arr,"from supplier ");
    strcat((char *)sql_statement.arr,"where supplierNumber < > 1;");

Câu lệnh xây dựng là

select supplierNumber, supplierName from supplier where supplierNumber < > 1;

Nhưng sau đó bạn làm:

exec sql PREPARE S1 FROM :sql_statement;

Giống như với các lệnh gọi SQL và JDBC động, việc chuẩn bị này chỉ có thể thực hiện một câu lệnh duy nhất. Dấu chấm phẩy ở cuối chuỗi được xây dựng của bạn là dấu phân tách câu lệnh không có bất kỳ ý nghĩa nào trong ngữ cảnh này và nó không hợp lệ theo như trình phân tích cú pháp có liên quan.

Vì vậy, chỉ cần xóa dấu chấm phẩy đó:

    strcpy((char *)sql_statement.arr,"select supplierNumber, supplierName ");
    strcat((char *)sql_statement.arr,"from supplier ");
    strcat((char *)sql_statement.arr,"where supplierNumber < > 1");

và thêm kiểm tra lỗi sau mỗi exec sql .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle DB:Trả về truy vấn thứ hai nếu truy vấn đầu tiên trống

  2. Cách thêm và xóa thẻ xml của dữ liệu hiện có bên trong cột xmltype trong oracle

  3. Câu lệnh Oracle Sql cho dấu thời gian duy nhất cho mỗi hàng

  4. Lắng nghe các thay đổi của Cơ sở dữ liệu Oracle trong .net

  5. Oracle sử dụng LIKE '%' vào DATE