PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Michael Peppler <mpeppler at peppler dot org>
Subject: RE: problems with Sybase::BLK against Sybase 12.5.x - setting client character set?
Date: Jun 18 2002 7:03PM

On Tue, 2002-06-18 at 09:46, Dennis Domingo wrote:
> 
>  Hi Scott and Michael:
> For this file that contains this data..
> 4|2001|3|3120|cdburn01|23509


 
> Open Client Message:
> Message number: LAYER = (0) ORIGIN = (0) SEVERITY = (0) NUMBER = (0)
> Message String: blk_rowxfer(): blk layer: internal BLK-Library error: Failed in convers
> ion routine - syntax error.  col = 5 row = 5.
> .
> .
> "
> These errors have something to do with setting the client character set with Sybase.12.5.x
> Here is a select of my tables that I just bcp'd the data
> siteId:       4
> nodeId:       2001
> editionId:    3
> pageTypeId:   3120
> searchPhrase: ????es"

Yikes!

> When I use command line bcp  I need to specify -J client character set .
> Sybase::BLK currently doesn't have any parameters in the config for character set settings.
> That's probably what's causing the other errors... thanx.

Indeed.

But you *can* set the client charset with Sybase::BLK - just use the
same syntax as with Sybase::CTlib:

$dbh = new Sybase::BLK $user, $pwd, $server, $appname, { CON_PROPS => {
CS_SYB_CHARSET => 'iso_1' }};

Although I've not had to use this often it *should* work.

Michael


>   Michael Peppler  wrote: Ak - I'd forgotten about that!
> 
> Thanks!
> 
> Michael
> 
> On Mon, 2002-06-17 at 13:27, Scott Zetlan wrote:
> > You'll probably need to escape the pipe. Try:
> > SEPARATOR => '\|',
> > 
> > instead. Sybase::BLK uses full regular expression matching for separators,
> > so it's interpreting your '|' character as a regular expression would:
> > 
> > @fields =~ split /|/, $line;
> > 
> > would yield one field for each character -- not what you want.
> > 
> > Scott
> > -----Original Message-----
> > From: owner-SYBPERL-L@list.cren.net
> > [mailto:owner-SYBPERL-L@list.cren.net]On Behalf Of Dennis Domingo
> > Sent: Monday, June 17, 2002 4:15 PM
> > To: SybPerl Discussion List
> > Subject: Re: problems with Sybase::BLK?
> > 
> > 
> > Hi Michael:
> > 
> > I've tried your suggestion as well removing 'RECORD_SEPARATOR for the
> > configuration
> > 
> > Now I get the same error for each line in my file each describing the line
> > number in the bcp input file.
> > 
> > mytestbcp.pl: 06172002-1308 - More columns passed to blk_rowxfer() than
> > were all
> > ocated with blk_init() at
> > /usr/local/depot/perl-5.6.0/lib/site_perl/5.6.0/sun4-s
> > olaris-thread/Sybase/BLK.pm line 539, line 5
> > 
> > thanx for your help.
> > 
> > I'm not sure what to do, I suppose I can use the perl function call
> > 'system' and run Sybase's BCP from the command line from my program
> > 
> > 
> > 
> > dd
> > 
> > 
> > 
> > Michael Peppler wrote:
> > 
> > On Mon, 2002-06-17 at 10:23, Dennis Domingo wrote:
> > > I get these errors when using Sybase::BLK
> > 
> > > mytestbcp.pl: 06172002-0942 - More columns passed to
> > > blk_rowxfer() than were allocated with blk_init() at
> > > /usr/local/depot/perl-5.6.0/lib/site_perl/5.6.0/sun4-solar
> > 
> > 
> > 
> > > 41 $bcp->config(INPUT => $bcp1File,
> > > 42 OUTPUT =>
> > > $ProcessTMConf::TMBCPTABLE,
> > > 43 SEPARATOR => '|',
> > > 44 RECORD_SEPARATOR => '\n'
> > 
> > Try using "\n" for the record separator instead of '\n'.
> > 
> > Remember that \n isn't interpolated in a single quoted string.
> > 
> > Michael
> > --
> > Michael Peppler / mpeppler@peppler.org / http://www.mbay.net/~mpeppler
> > mpeppler@zetatools.com / ZetaTools, Inc / http://www.zetatools.com
> > ZetaTools: Call perl functions as Sybase stored procedures!
> > > ATTACHMENT part 2 application/pgp-signa! ture name=signature.asc
> > 
> > 
> > 
> > 
> > ----------------------------------------------------------------------------
> > --
> > Do You Yahoo!?
> > Sign-up for Video Highlights of 2002 FIFA World Cup
> -- 
> Michael Peppler / mpeppler@peppler.org / http://www.mbay.net/~mpeppler
> mpeppler@zetatools.com / ZetaTools, Inc / http://www.zetatools.com
> ZetaTools: Call perl functions as Sybase stored procedures!
> > ATTACHMENT part 2 application/pgp-signature name=signature.asc 
> 
> 
> ---------------------------------
> Do You Yahoo!?
> Sign-up for Video Highlights of 2002 FIFA World Cup
-- 
Michael Peppler / mpeppler@peppler.org / http://www.mbay.net/~mpeppler
mpeppler@zetatools.com / ZetaTools, Inc / http://www.zetatools.com
ZetaTools: Call perl functions as Sybase stored procedures!