Invalid Non-ASCII Character Conversion Over JDBC To Solaris Client
Jun 19, 2006
Hi,
I'm working on a database conversion from Sybase to SQL Server 2005 and have hit a wall with a character conversion problem when reading non-ASCII characters (encrypted password) via JDBC.
My application runs on Solaris and accesses a SQL Server 2005 database via the Microsoft JDBC driver. The server was unfortunately specified as having a SQL_Latin1_General_CP1_CI_AS collation at installation time, and the database being accessed has taken this default. After creation the data was migrated across via DTS.
The invalid character is a dagger '€ '. When read over JDBC it is converted to a question mark '?'.
In my original environment a Sybase database was accessed via JDBC driver from Solaris and the correct value was returned. The Sybase database used Latin1_General_BIN as it's collation. By way of experimentation I have modified the default collation sequence within the SQL Server 2005 database, and created a new table to hold the password. I am then able to correctly return strings containing this character from within SQL Server Management Studio, but the same problem still exists when accessing it via JDBC.
I am not sure where to focus my investigation and would be grateful for any useful pointers/advice. To me it looks like it's a JDBC driver issue as with the change in collation it works from a non-JDBC client.
I'm working on a database conversion from Sybase to SQL Server 2005 and have hit a wall with a character conversion problem when reading non-ASCII characters (encrypted password string) via JDBC.
My application runs on Solaris and accesses a SQL Server 2005 database via the Microsoft JDBC driver. The server was unfortunately specified as having a SQL_Latin1_General_CP1_CI_AS collation at installation time, and the database being accessed has taken this default. After creation the data was migrated across via DTS.
The invalid character is a dagger '†'. When read over JDBC it is converted to a question mark '?'.
In my original environment a Sybase database was accessed via JDBC driver from Solaris and the correct value was returned. The Sybase database used Latin1_General_BIN as it's collation. By way of experimentation I have modified the default collation sequence within the SQL Server 2005 database, and created a new table to hold the password. I am then able to correctly return strings containing this character from within SQL Server Management Studio, but the same problem still exists when accessing it via JDBC.
I am not sure where to focus my investigation and would be grateful for any useful pointers/advice. To me it looks like it's a JDBC driver issue as with the change in collation it works from a non-JDBC client.
item custclass totalcustclass ------------------------- 06-5841 INST-CLINPRAC 1 06-5841 INST-MKT/MEDIA 2 06-5841 PROGRAM 1 06-5841 STANDARD 4 06-5845 STANDARD 1 AX-048 INST-MKT/MEDIA 4 KT-048 PROGRAM 2 KT-048 STANDARD 4
i want condition like if item is starting with number then totalcustclass whcih is count(*) remain same giving correct results...but if item startign with ascii character then totalcustclass r getting double so i have to /2..
i want results:
item custclass totalcustclass ------------------------- 06-5841 INST-CLINPRAC 1 06-5841 INST-MKT/MEDIA 2 06-5841 PROGRAM 1 06-5841 STANDARD 4 06-5845 STANDARD 1 AX-048 INST-MKT/MEDIA 2 KT-048 PROGRAM 1 KT-048 STANDARD 2
select item, custclass,
case when item is <ascii> then count(custclass)/2 else count(custclass) as totalcustclass
from itemcustclass
can anyone tell me what condition will come in case?
I have an issue with some data that has a leading ASCII char 160 (the "a" with the accent mark) but it shows in query results as a space.
... where customername like char(160) + '%'
returns 2 rows but shows the customer name with a leading space. How would I change the collation or do otherwise to get this character to display correctly in the results?
I have a stored procedure with a input parameter ( xml block).
sp: spGetAddr @xmlText
the style of parameter @xmlText looks like
<Param RestricBy="UserName IN ('Mayá', 'Bob')"/>
If I use non-basic ASCII character, just like 'á' in the parameter, the execution fails and I get 'The error description is 'An invalid character was found in text content.''
But this kind of special characters should be allowed in the name column of the database table.
If I use the htlm code 'á" to replace 'á' in the parameter, then the execution of the stored procedure is fine. but how can I change all of the possible sepcial characters?
If somebody knows how to handle this issue, please help me. I'm pre-appreciated for all the idea and suggestion!
I tried to setup a flat file data source that has code page 37 (EBCDIC)
Then I have a flat file destionation that is ASCII.
And inbetween I have tried several different data flow conversion tasks liked Data Conversion, and Derived Column. But I keep getting errors about different code pages.
I also tried to load the EBCDIC data into a SQL Server DB, and it complains about different code page.
Has anyone been able to do this with SSIS out of the box, without any extra components ?
I need to do EBCDIC to ASCII conversion in SSIS. The incoming data has packed decimal fields in it. Has anyone been able to convert packed EBCDIC decimal fields to ACSCII using SSIS?
I am writing a datetime field value to MS SQL Server 7 in the following mannervia a stored procedure:// item to be written is originally a java.util.Date objectjava.util.Date fromDate;// I'm inserting it here into the databasecstmt.setTimestamp(8, new Timestamp(fromDate.getTime()));// the record in the database appears as follows - as I wanted it to..12/23/2004 4:30:43 AMThe problem is reading the date FROM the database back into ANY type of JavaDate-related object. No matter what I try, the hour/minutes/seconds are notreturned, and I desperately need the hour and minutes. I don't want to storethe hours and minutes in another field - it just causes more complications.Does anyone out there know a way to get the ENTIRE date value out of the database?
Trying to generate a report (using WebForm ReportViewer, from dynamically created RDL report and SQL Server 2005 OLAP cube), if a database field contains control characters (code < 0x20), Reporting Services generate following message:
' ', hexadecimal value 0x02, is an invalid character. Line 1, position 2376.
Is it possible to ignore that? I don't care if browser shows an octopus, the report must work.
I'm getteing an error saying "[Microsoft][ODBC SQL Server Driver]Invalid character value for cast specification" when i try to debug a store procedure. The Store Procedure parameters are as below. PROCEDURE clCreateUnpostedTrxEarnType ( @SERIES int, @PERIODID int, @YEAR int, @PTRATIO float, @CPTYPE int, @CPTRXTYPE int, @Startdate datetime, @Enddate datetime, @O_iErrorState int = NULL output )
I am using the backend SQLServer with Powerbuilder, I write a stored procedure and tried to create a datawindow to use that procedure but failed, it returns error code 22005 -Invalid Character value for cast specification. I tried to change any setting in ODBC but still failed.
accessing through ODBC a frond end application which is running on MS SQL Server 2005, works just fine with a specific setup as concerned as the decimal/thousands separators ("," for thousands and "." for decimals). If i switch these settings alternatively ("." for thousands and "," for decimals), i get this error: [Microsoft][ODBC SQL Server Driver]Invalid character value for cast specification.
I tried to search forum and internet but no luck. Thanks in advance
hello, i have a problem with SQL Server Agent. Sometimes, when a scheduled job runs i get this error:
Error: 2008-03-13 06:04:50.50 Code: 0xC0202009 Source: Load Current OLE DB Destination [124] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Invalid character value for cast specification". End Error Error: 2008-03-13 06:04:50.52 Code: 0xC020901C Source: Load Current OLE DB Destination [124] Description: There was an error with input column "collectDate" (217) on input "OLE DB Destination Input" (137). The column status returned was: "Conversion failed because the data value overflowed the specified type.". End Error Error: 2008-03-13 06:04:50.52 Code: 0xC0209029 Source: Load Current OLE DB Destination [124]
the code i use looks like this
DECLARE @Report_date datetime SET @Report_date = dateadd(dd,-1,convert(varchar(10),getdate(),121))
select CollectDate = @Report_date
the destination column is datetime. Is this a known issue / bug? Because this doesn't happen everytime, and when it does happen all i have to do ia run the job again.
I wrote a CLR function, which is receiving some XML parameters. In certein situations it gives me the following error message:
Msg 6522, Level 16, State 1, Line 58 A .NET Framework error occurred during execution of user-defined routine or aggregate "svmScale": System.Xml.XmlException: Invalid character in the given encoding. Line 1, position 27. System.Xml.XmlException: at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) at System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32& bytesCount, Int32& charsCount) at System.Xml.XmlTextReaderImpl.GetChars(Int32 maxCharsCount) at System.Xml.XmlTextReaderImpl.ReadData() at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars) at System.Xml.XmlTextReaderImpl.ParseText() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlTextReader.Read() at System.Xml.XmlWriter.WriteNode(XmlReader reader, Boolean defattr) at System.Data.SqlTypes.SqlXml.CreateMemoryStreamFromXmlReader(XmlReader reader) at System.Data.SqlTypes.SqlXml..ctor(XmlReader value) at UserDefinedFunctions.svmScale(SqlXml sql_problem, Boolean perChannel, Single x_factor, Single y_factor)
If I cahnage one of the zeros in the given tag, the error message disappears. If i cut the given tag, the error message disappears. If I cut the given tag, and then paste the previous one in place of it, the error message APPEARS. So my conclusion is, that any tag can be wrong on a specific position in the XML. This makes me wonder.
Another wonderfull thing is, that if I take this CLR function, and the same TSQL code, and I do run it on my notbook with my SQL Express, no error message. But if I try to use it on the server, with SQL 2005 it drops me this error message. The resulting XML is coming from an SELECT FOR XML AUTO, so i suspect it not having illegal characters inside. This is probably true, becouse the above replace procedure can make the message disapear.
The server: Product: Microsoft SQL Server Enterprise Edition Op System: Microsoft Windows NT 5.2 (3790) Platform: NT INTEL X86 Version: 9.00.3027.00 Language: English (United States) Memory: 4095 (MB) Processors: 2 Collation: SQL_Latin1_General_CP1_CI_AS Clustered: False
The notebook: Product: Microsoft SQL Server Express Edition Op System: Microsoft Windows NT 5.1 (2600) Platform: NT INTEL X86 Version: 9.00.1399.06 Language: English (United States) Memory: 1015 (MB) Processors: 1 Collation: SQL_Latin1_General_CP1_CI_AS Clustered: False
I have a Data Flow task that is simply copying data from table A to table B. (there is a derived column in between however)
All the columns in table A are varchar(255). The columns in table B vary: floats, decimals, etc
However, I am getting a bazillion errors when I run this, each of them to the effect that:
Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Invalid character value for cast specification". An OLE DB record is available. Source: "Microsoft SQL Native Client"
I don't understand why this is happening... I've succesfully run similar scenarios with other packages, ie) moving data from one table to another table even though the tables have different data types.
if the variable contains any of the character  that is not present in the  following Below table then it should display "InValid Character" else "valid Character"
DECLARE @MyString VARCHAR(100) SET @MyString = 'ABC$[' select caseÂ
I bcped in data into a database with SQL_Latin1_General_Cp1_CI_AS collation. The input data has an embedded character ®(ascii 174). I did not specify any code page using the -C parm. The data was converted to character «(ascii 171). I ran the bcp trying -C1252 and -CRAW and both maintained the correct character. -C437 and -COEM change the character to «. Why did this happen? I thought that data would be converted to correctly without any code page specification.
I'm usung bcp to move data from one table to another. 202 million rows. The source/original table had 32 fields. The new table has 33 fields. I added a PK column to the destination/new table. The new PK column is the first field in the new table, it is set to autoincrement by 1 on each insert. The data file only has 32 fields of data per row.
The error is :SQLState = 22018, NativeError = 0 Error = [Microsoft][SQL Native Client]Invalid character value for cast specification
10 times, then bcp shuts off (default errors is 10).
C:>bcp dbname.schema.TP_LOG_NEW in e:alltplog.dat -S dbsvr -T -f tplognew.fmt
I am trying to write and insert statement that takes up a date value, such as, Insert into tablename(date_column) values (date('some date', format));
I however do not know how exactly to convert a character string to transact sql date. can someone please lead me in correct direction? Some documentation could also help.
I have a question regarding the running of a procedure from VC++ in SQL server.
well this is the scenario.
i have a procedure in SQL server and i am running that thru my VC++ code. :eek: i have a recordset class and i create an object of it and then do a obj.Open(). the procedure is fetching 24 records correctly in the query analyser and in my while(!(obj.IsEOF())) loop it gets the first record correctly but the moment it encounters obj.MoveNext(); it bombs and gives me the following error..
"Invalid Character value for cast specification ".
Hi,I used SQL Server 2000 Personal Edition. I created a stored procedurehaving input parameters as smallint,tinyint,char,varchar andsmalldatetime. When I executed it by Query Analyzer, it's ok. But whenI executed it by ASP code that used ADODB.command, it showed error:Invalid character value for cast specification .Though SQL Server debugger, it showed:[Microsoft][ODBC SQL Server Driver]Invalid character value for castspecificationWhat did I do wrong? How do I fix this problem?TIAKrungPS: One of input parameters was smalldatetime, but I casting it in ASPas date as:Const adDate=7datetxt='2004/6/28'cmd.Parameters.Append cmd.CreateParameter("CoopId",adChar,adParamInput, 8, coopid)cmd.Parameters.Append cmd.CreateParameter("Addr",adVarChar,adParamInput, 100, addr)...cmd.Parameters.Append cmd.CreateParameter("Cdate",adDate,adParamInput, , datetxt)....cmd.execute
Hi, I'm a new DBA and am a rookie when it comes to working with SQL Server 2005. I have been tasked with transfering an Access database to SQL Server 2005. Now I understand to use the import/export wizard, but am having problems fixing an error I am receiving. Here is the error...
Problem I - Copying to [IS_Shared_ServicesTest].[dbo].[tblResource] (Error) Messages * Error 0xc0202009: Data Flow Task: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Invalid character value for cast specification". (SQL Server Import and Export Wizard)
* Error 0xc020901c: Data Flow Task: There was an error with input column "Contract Start Date" (115) on input "Destination Input" (80). The column status returned was: "Conversion failed because the data value overflowed the specified type.". (SQL Server Import and Export Wizard)
Here is the short version of the error. I realize that there is an error with the conversion and the error is in tblResource in column Contract Start Date. It is still transfering the column over, and on spot check they seem fine. Should I be really worried about an error? Or is there something that I can do with the Access or SQL server database to fix this?
In my SSIS Package I am loading data from Oracle source to SQL Destination. But while loading I am getting below error.
[OLE_DST_FORECASTSTANDARD [72]] Error: SSIS Error Code DTS_E_OLEDBERROR. Â An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Â Source: "Microsoft SQL Server Native Client 11.0" Â Hresult: 0x80004005 Â Description: "Invalid character value for cast specification".
[OLE_DST_FORECASTSTANDARD [72]] Error: There was an error with OLE_DST_FORECASTSTANDARD.Inputs[OLE DB Destination Input].Columns[UNITS_NEW] on OLE_DST_FORECASTSTANDARD.Inputs[OLE DB Destination Input].
The column status returned was: "Conversion failed because the data value overflowed the specified type.".
I have attached the table definition of both source as well as destination.
My source is a csv flat file. Currently I use that same flat file on SQL 2000 and SQL 2005.
On SQL 2000 it runs fine and it inserts that character as part of the string (varchar), however, it gives me truncate error on sql 2005. I already use the "Suggest Types...." and my Output columns have the correct lenght (specially that lehght of that column is only 30 char which is less than the default anyways). If I remove that character it runs fine for that column.....
This is the values that I get in my flat file for the trouble coulmn is "ATTN: JON OLSEN €€œ CTRL8 "
And the error that I get when running the SSIS is
[Flat File Source OrderDetail [1]] Error: Data conversion failed. The data conversion for column "Column 15" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
[Flat File Source OrderDetail [1]] Error: The "output column "ShipToAddr1" (63)" failed because truncation occurred, and the truncation row disposition on "output column "ShipToAddr1" (63)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
[Flat File Source OrderDetail [1]] Error: An error occurred while processing file "C:Inetpubftprootorderdetail.csv" on data row 6.
But in both the importexport utility and from SSIS. "#" become "." (aka pound to period) in column headers. So for example [# of errors] becomes [. of errors]. Now I truly do not ever remember having this issue before but then again I have don't remember having to construct field names with a various assortment of characters that are randomly strewn about as though someone discovered the symbol picker recently and had decided to employ it to make the a spreadsheet a more interesting place. Hence after a good day of time wasted. (as I considered doing an alter table after the sheets were put out.. and then thought better of it.) I seek guidence here. Thanks in advance.
Hello, I am running out of ideas on how to get SSRS to work. I am trying get this setup with the intention to replace our Crystal Reports server. Currently I have set up the RS Virtual Directory on a Win XP box. The ReportServer database sits on another SQL2000 box.
I can connect to the http://localhost/ReportServer/ on the XP box to display the page the depicts "Microsoft SQL Server Reporting Services Version 9.00.2047.00"
When I connect to the http://localhost/Reports/, I get this error "A name was started with an invalid character. Error processing resource 'http://leej/Reports/'. Line 1, Position 2" I checked my IIS Virtual Directory properties for Reports and ASP.NET is set to v2.0.50727. I also executed "aspnet_regiis.exe -i" in the "C:WINDOWSMicrosoft.NETFrameworkv2.0.50727" directory.
Any thought on how to fix this? I hate to let this blocker deters us from deploying SSRS.
Conversion failed when converting datetime from character string. I am getting this error while inserting values in the DB from my application. I have done insertion before too , but i never receive this strange error but when I insert the same thing manually then i didn't get this error ...
The format I used is also yyyy-mm-dd then how to solve this error?????????
Hi all--Given a table called "buyers" with the following column definitions in a SQL Server 2005 database:
[BUYER] [nvarchar](40) NULL,
[DIVISION] [nvarchar](3) NULL,
[MOD_DATE] [datetime] NULL
This table is laden with Unicode data and the MOD_DATE contains no data--not even NULL values, and is giving me a headache as a result. I can export this data fine to a text file, but when I create an SSIS package to attempt import to another table defined exactly the same as above in another place, I get the following messages:
SSIS package "buyers_import.dtsx" starting. Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning. Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning. Information: 0x40043006 at Data Flow Task, DTS.Pipeline: Prepare for Execute phase is beginning. Information: 0x40043007 at Data Flow Task, DTS.Pipeline: Pre-Execute phase is beginning. Information: 0x402090DC at Data Flow Task, Source - buyers_txt [1]: The processing of file "D: emp3uyers.txt" has started. Information: 0x4004300C at Data Flow Task, DTS.Pipeline: Execute phase is beginning. Information: 0x402090DE at Data Flow Task, Source - buyers_txt [1]: The total number of data rows processed for file "D: emp3uyers.txt" is 232. Error: 0xC0202009 at Data Flow Task, Destination - buyers_tst [22]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Invalid character value for cast specification". Error: 0xC020901C at Data Flow Task, Destination - buyers_tst [22]: There was an error with input column "MOD_DATE" (45) on input "Destination Input" (35). The column status returned was: "The value could not be converted because of a potential loss of data.". Error: 0xC0209029 at Data Flow Task, Destination - buyers_tst [22]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "input "Destination Input" (35)" failed because error code 0xC0209077 occurred, and the error row disposition on "input "Destination Input" (35)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. Error: 0xC0047022 at Data Flow Task, DTS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Destination - buyers_tst" (22) failed with error code 0xC0209029. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. Error: 0xC0047021 at Data Flow Task, DTS.Pipeline: SSIS Error Code DTS_E_THREADFAILED. Thread "WorkThread0" has exited with error code 0xC0209029. There may be error messages posted before this with more information on why the thread has exited. Information: 0x40043008 at Data Flow Task, DTS.Pipeline: Post Execute phase is beginning. Information: 0x402090DD at Data Flow Task, Source - buyers_txt [1]: The processing of file "D: emp3uyers.txt" has ended. Information: 0x402090DF at Data Flow Task, Destination - buyers_tst [22]: The final commit for the data insertion has started. Information: 0x402090E0 at Data Flow Task, Destination - buyers_tst [22]: The final commit for the data insertion has ended. Information: 0x40043009 at Data Flow Task, DTS.Pipeline: Cleanup phase is beginning. Information: 0x4004300B at Data Flow Task, DTS.Pipeline: "component "Destination - buyers_tst" (22)" wrote 0 rows. Task failed: Data Flow Task SSIS package "buyers_import.dtsx" finished: Failure.
Among the customizations in this package is the flag "ValidateExternalMetadata" set to False. The data itself is surrounded by " and delimited by semicolons for each field, with the header row set as the name of each column. It looks like this:
"BUYER";"DIVISION";"MOD_DATE" "108 Joon-Hyn Kim";"TAD";"" "109 Kang-Soo Do";"TAD";"" "FS07 John Smith";"TAD";""
...
Can anyone suggest a course of action on how to handle the error when the MOD_DATE field is completely empty?
I have OLE DB source which executes SP with 2 parameters and output is flat file. Every time I run I immediately get output below. How do I troubleshoot further what might be causing this?
Information: 0x402090DC at Data Flow Task, Flat File Destination [2]: The processing of file "C:UsersadminDesktopout.csv" has started. Error: 0xC0202009 at Data Flow Task, OLE DB Source [41]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E21. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E21 Description: "Invalid character value for cast specification". Error: 0xC004701A at Data Flow Task, SSIS.Pipeline: OLE DB Source failed the pre-execute phase and returned error code 0x80040E21.