2012-01-10 22 views
14

Tôi muốn chèn kích thước lớn dữ liệu có độ dài ký tự lớn hơn 10.000. Tôi đã sử dụng kiểu dữ liệu CLOB cho mỗi cột. Tôi không thể chèn/cập nhật dữ liệu lớn nó cho thấy lỗi sau:Làm thế nào để chèn/cập nhật kích thước lớn hơn của dữ liệu trong bảng Oracle?

ORA-01704: string literal too long 

Mã của tôi

insert into table1 value(1,'values>10000'); 
+2

Bạn sử dụng ứng dụng nào để chèn/cập nhật dữ liệu? SQL * Plus, PHP, Java, ...? Bạn có thể gửi mã của bạn? Trong [Thực hiện các phép toán chuỗi cơ bản trên CLOB] (http://www.java2s.com/Tutorial/Oracle/0660__Large-Objects/PerformingbasicstringoperationsonCLOBs.htm), bạn có thể xem một mẫu. – danihp

+0

oracle SQL * plus 10g –

+0

Hãy xem liên kết trước. Có thể là một điểm khởi đầu tốt. – danihp

Trả lời

21

Bạn sẽ phải gán giá trị cho một biến & sử dụng biến để chèn dữ liệu

DECLARE 
    v_long_text CLOB; 
BEGIN 
    v_long_text := 'your long string of text'; 

    INSERT INTO table 
    VALUES  (1, 
       v_long_text); 
END; 

để làm cho nó rõ ràng: có những giới hạn thiết lập để chuỗi ký tự:

bạn không thể có một chuỗi chữ trên

  • 4000 byte trong SQL
  • 32k trong PLSQL

Nếu bạn muốn đi trên này, bạn sẽ phải sử dụng các biến ràng buộc.

+0

Cảm ơn sathya nhưng nếu nó là 3.000.000 hoặc cao hơn một lần nữa cho thấy lỗi như ORA-06550 PL-sql-00172: chuỗi chữ quá dài –

+0

vui lòng cung cấp một số mẹo để sử dụng các biến liên kết –

+0

Tìm kiếm bằng Google, bạn sẽ tìm thấy nhiều ví dụ http://www.java2s.com/Tutorial/Oracle/0440__PL-SQL-Statements/UsingMultipleBindVariables.htm http://psoug.org/reference/bindvars.html @ManoharKulanthaivel – Sathya

Các vấn đề liên quan