无法使用存储过程向Oracle DB插入240个字符

时间:2016-07-27 06:28:14

标签: oracle stored-procedures

我是Oracle新手,使用存储过程插入240个字符时遇到问题。以下是存储过程:

procedure add_user_note(p_user_seq    in varchar2,
                          p_author      in varchar2,
                          p_note_text   in varchar2,
                          o_return_code out integer) IS
  BEGIN
    o_return_code := RC_SUCCESS;

    INSERT INTO user_notes
      (sss_user_object_id, note_date, note_text, note_author)
    VALUES
      (p_user_seq, SysDate, p_note_text, p_author);
    commit;
  exception
    when others then
      o_return_code := SQLCODE;
  END;

使用此程序我可以插入238个字符,但我的要求是在参数 p_note_text 中插入240个字符。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您的代码不会限制p_note_text中的字符数。您的代码最多可以处理32767个字节,即PLSQL max varchar2长度。

您可以插入的字符数可能受user_notes.note_text的列定义限制。

请参阅此处讨论有关列定义中BYTE和CHAR的区别。

Difference between BYTE and CHAR in column datatypes

答案 1 :(得分:0)

你应该玩length()和lengthB()函数

长度 - 用于字数统计 LengthB - 以字节为单位的大小