6

I don't know if I am missing something but what I am doing is:

I have a function that returns a ROWTYPE

  FUNCTION myFunc(pChar CHAR) RETURN myTable%ROWTYPE AS
    myTable_rec myTable%ROWTYPE;
  BEGIN
    SELECT col1, col2, col3
    INTO myTable_rec.col1 
      , myTable_rec.col2
      , myTable_rec.col3
    FROM myTable
    WHERE col4 = pChar;

    RETURN(myTable_rec);
  END B001_03;

then in my procedure (which calls the function above), I declared:

myTable_rec myTable%ROWTYPE;

but when I call in the procedure:

...
myTable_rec := myFunc(someChar);
...

I get

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Aren't the fields supposed to be FROM the same table and OF THE SAME datatype (as of my little understanding)?

EDIT: I tried to SELECT * and every works. I am definitely missing something here. I just don't know that it is.

1
  • why don't you use Varchar2 instead of Char? Commented Jul 16, 2013 at 5:38

2 Answers 2

6

I bet the problem originates from using Char which is a fixed length string. Not sure where, but somewhere in your code you try to put a Char or varchar2 string of length N into a char of lengh M where M > N.

Sign up to request clarification or add additional context in comments.

Comments

3

I was getting this error while accessing Oracle SP through my .Net code. If someone is facing this error then for him/her specifying the size of the input / output parameter would help solving the issue.

Sample code goes like this :

OracleParameter oparamProjectId = mycom.Parameters.Add("p_open_flag", OracleDbType.Varchar2); oparamProjectId.Direction = ParameterDirection.Output; oparamProjectId.Size = 100;

1 Comment

Perfect! After a long time trying to find the error finally I know why. Thank you very much!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.