[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
FW: Use of Sybase text datatype is recognized as char datatype!
- Subject: FW: Use of Sybase text datatype is recognized as char datatype!
- From: "Simonian, Guy" <SimonianG@AETNA.COM>
- Date: Fri, 3 Apr 1998 16:15:15 -0500
1) - 7) of your example work fine (I shortened the table name though)
8) Errors out exactly as in my original note.
It seems that SQR wants to pass $abc as char, even though SQL denotes
TEXT datatypes.
Arrays don't work inside the INSERT line either.
> ----------
> From: Ken Gartman[SMTP:osmium@EROLS.COM]
> Sent: Friday, April 03, 1998 6:02 PM
> To: Multiple recipients of list SQR-USERS
> Subject: Re: Use of Sybase text datatype is recognized as char
> datatype!
>
> Simonian, Guy wrote:
> >
> > Am trying to write to a Sybase "text" datatype which is supposed to
> hold
> > up
> > to 2 gig of ascii data, yet the errors I get indicate that Sybase
> thinks
> > its getting char data;
> >
> > begin-setup
> > begin-sql on-error=SKIP
> > create table {DETAILDB} (out_line text null)
> > end-sql
> > end-setup
> >
> > begin-procedure main
> > let $abc = '1234567...300 characters of data....'
> > begin-sql
> > insert into {DETAILDB} (out_line) values ($abc)
> > end-sql
> > end-procedure
> >
> > -------When I run this, I get the following bind errors. It looks
> like
> > SQR is passing char data, even though the field is defined as type
> > text.:
> > --------------------------
> > (SQR 5528) Sybase dbbind: ct_param error in cursor 119:
> > (138) ct_param(): user api layer: external error: A data length
> of
> > 300 exceeds the maximum length allowed for CHAR data.
> > (SQR 5528) Sybase ct_send error in cursor 119:
> > (138) ct_param(): user api layer: external error: A data length
> of
> > 300 exceeds the maximum length allowed for CHAR data.
> >
> > SQL: insert into tempdb..detail (out_line) values (@__p1)
> >
> > Error on line 155:
> > (SQR 3734) Couldn't compile SQL.
> >
> > SQRW: Program Aborting.
> >
> > Am running SQR V3.0.18.1 in a Sybase 11 environment. The SQR client
> is
> > on SunOS 5.5.1 and also on WinNT. Sybase is under SunOS 5.5.1
>
>
> Hi, Guy!
> Let's use a multi-step approach to debug this one. Thus we
> can
> isolate the problem into a smaller area of confusion.
>
> 1. Create your table outside of SQR. After you create it, verify its
> structure. Are the table name, column name, and column data
> type correct?
>
> 2. Directly at the data base level, insert a constant into the table,
> with a SQL statement such as:
> CREATE TABLE GUY_TEMP_1 (OUT_LINE TEXT)
> INSERT INTO GUY_TEMP_1 (OUT_LINE) VALUES
> ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBB
> BBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDD
> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEE
> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFF
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJ
> JJJJJJJJJJJJJJJJ')
> ;
>
> 4. Do you get the expected results? COMMIT ; SELECT * FROM
> GUY_TEMP_1
> ;
> Do you once again get the expected results?
> insert into {DETAILDB} (out_line) values ($abc)
>
> 5. If all is well, code a small, simple SQR:
>
> BEGIN-PROGRAM
> DO INSERTS
> END-PROGRAM
> BEGIN-PROCEDURE INSERTS
> BEGIN-SQL
> INSERT INTO GUY_TEMP_1 (OUT_LINE) VALUES
> ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBB
> BBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDD
> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEE
> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFF
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJ
> JJJJJJJJJJJJJJJJ')
> ;
> COMMIT ;
> END-SQL
> END-PROCEDURE INSERTS
>
>
> 6. Execute your program with the -E and -S flags:
>
> SQR <connect string> INSERT-PROGRAM.SQR -E -S
>
> Do you get any errors now? I doubt that you will, but if so, the
> file
> INSERT-PROGRAM.ERR should have the details.
>
> 7. Code up a program that uses variables:
>
>
> BEGIN-PROGRAM
> DO INSERTS
> END-PROGRAM
> BEGIN-PROCEDURE INSERTS
> LET $long-string =
> 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBB
> BBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDD
> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEE
> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFF
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFG
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJ
> JJJJJJJJJJJJJJJ'
>
> BEGIN-SQL
> INSERT INTO GUY_TEMP_1 (OUT_LINE) VALUES ( $long-string ) ;
> COMMIT ;
> END-SQL
> END-PROCEDURE INSERTS
>
> 8. Execute as before. Any errors? I guess this the step most likely
> to have errors. Look up any errors in the SQR documentation.
>
> 9. At the database level, once again check the results:
>
> SELECT * FROM GUY_TEMP_1 ;
>
>
>
> Good luck, and happy computing
> Ken Gartman
>