New to the forum here, it seems like this is a good SQL Server resource...
I'm still somewhat in the learning phases of T-SQL coding, and so far what I've learned has been pretty beneficial...a problem i'm having at the moment though, is with some conversion. I created a stored procedure that basically takes all the records from one table to another. I'll paste the code onto here and show you what's flagging on me (comment about the error within code). It probably seems a bit convoluted, but the UserProfileValue table is something that I TOTALLY wish Microsoft had second-guessed (it's from SharePoint Portal Server 2003)
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER procedure profile_ImportUserProfileData
as
declare profile_curs cursor for
select UserProfileValue.RecordID, UserProfileValue.PropertyID, UserProfileValue.PropertyVal, PropertyList.PropertyName, PropertyList.DataType
from PropertyList
inner join UserProfileValue
on PropertyList.PropertyID = UserProfileValue.PropertyID
order by UserProfileValue.RecordId,
UserProfileValue.PropertyId
open profile_curs
fetch next from profile_curs into @RecordId, @PropertyId, @PropertyVal, @PropertyName, @DataType
if (@@fetch_status = -1)
begin
print 'End of table'
close profile_curs
deallocate profile_curs
return
end
while (@@fetch_status = 0)
begin
SET IDENTITY_INSERT UserProfileReportTable ON
insert UserProfileReportTable(RecordId)
values(@RecordId)
SET IDENTITY_INSERT UserProfileReportTable OFF
set @OldRecordId = @RecordId
fetch next from profile_curs into @RecordId, @PropertyId, @PropertyVal, @PropertyName, @DataType
if @DataType like 'nvarchar'
set @DataType = @DataType + '(20)'
while (@RecordId = @OldRecordId)
begin
declare @sql nvarchar(1000)
set @sql = 'update ' + @table
-- this next line is the one that's crapping out, saying "Incorrect syntax near @DataType"
set @sql = @sql + ' set ' + @PropertyName + ' = ' + convert(@DataType, @PropertyVal)
set @sql = @sql + ' where RecordId = ' + @RecordId
execute sp_executesql @sql
fetch next from profile_curs into @RecordId, @PropertyId, @PropertyVal, @PropertyName, @DataType
end
end
close profile_curs
deallocate profile_curs
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
I also tried cast(@PropertyVal as @DataType) but got the same results. I know it probably isn't the best idea to use a cursor, considering there are 3000+ records in UserProfileValue, but more than likely this procedure will only be run once, and I couldn't think of any better way to do it. Any help would be appreciated.
For those of you who are able to assist, I'd like to thank you in advance right now. This is a pretty big problem for me.
First let me setup what it is I'm trying to do before I describe the problem in detail. This is part of a semester-long Software Engineering project for my SE class at school. Now, I've got a month for this project, but the database part of it is something I'm trying to get done by this week. Our team is using GoDaddy to host our account and so to simplify our problems with using Visual Studio and MySQL we're switching over to MS SQL, where our code works.
Okay, onto the specifics: I'm used to using a database modeling program called DBDesigner4. Unfortunately, they're support forums have been closed down (fabFORCE.net) and I've spoken with a GoDaddy representative and their servers don't allow me to directly connect with my modeling program and create the schema/tables using the program. However, the program does export to a MySQL table creation script or even an MDB XML file (MSAcess I believe). I'm trying to hand convert the creation script over to MS SQL syntax and I'm having alot of problems (please bear with me, I've never messed with MS SQL before).
For your reference, I'm going to display the actual MySQL script here (just skip this section if you'd like to see the actual problem below):
Code:
CREATE TABLE Addresses ( address_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, address_line1 VARCHAR(30) NOT NULL, address_line2 VARCHAR(30) NULL, address_city VARCHAR(30) NOT NULL, address_state VARCHAR(2) NOT NULL, address_zip MEDIUMINT UNSIGNED NOT NULL, PRIMARY KEY(address_id) ) TYPE=InnoDB;
CREATE TABLE Broadcasts ( broadcast_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, address_id INTEGER UNSIGNED NOT NULL, broadcast_title VARCHAR(30) NOT NULL, broadcast_message VARCHAR(255) NOT NULL, broadcast_image VARCHAR(255) NOT NULL, broadcast_date_posted DATETIME NOT NULL, broadcast_date_expires DATETIME NOT NULL, broadcast_date_archived DATETIME NULL, broadcast_clicks BIGINT NOT NULL DEFAULT 0, broadcast_type ENUM('promo', 'announcement', 'other') NOT NULL DEFAULT 'promo', broadcast_link VARCHAR(255) NULL, PRIMARY KEY(broadcast_id), INDEX Broadcasts_FKIndex1(address_id) ) TYPE=InnoDB;
CREATE TABLE Classes ( user_id INTEGER UNSIGNED NOT NULL, subject_id INTEGER UNSIGNED NOT NULL, class_grade INTEGER UNSIGNED NOT NULL DEFAULT 100, class_tardies INTEGER UNSIGNED NOT NULL DEFAULT 0, class_absences INTEGER UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY(user_id, subject_id), INDEX Users_has_Sections_FKIndex1(user_id), INDEX Classes_FKIndex2(subject_id) );
CREATE TABLE Classes_have_Grades ( subject_id INTEGER UNSIGNED NOT NULL, user_id INTEGER UNSIGNED NOT NULL, grade_id INTEGER UNSIGNED NOT NULL, PRIMARY KEY(subject_id, user_id, grade_id), INDEX Grades_has_Classes_FKIndex1(grade_id), INDEX Grades_has_Classes_FKIndex2(user_id, subject_id) );
CREATE TABLE Grades ( grade_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, grade INTEGER UNSIGNED NOT NULL, grade_type ENUM('h', 'q', 't') NOT NULL, grade_desc VARCHAR(50) NOT NULL, PRIMARY KEY(grade_id) );
CREATE TABLE Locations ( loc_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, address_id INTEGER UNSIGNED NOT NULL, location_id VARCHAR(20) NOT NULL, location_name VARCHAR(25) NOT NULL, PRIMARY KEY(loc_id), INDEX Locations_FKIndex1(address_id) ) TYPE=InnoDB;
CREATE TABLE Passports ( passport_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, user_id INTEGER UNSIGNED NOT NULL, location_id INTEGER UNSIGNED NOT NULL, passport_user VARCHAR(7) NOT NULL, passport_code VARCHAR(32) NOT NULL, passport_access ENUM('student', 'faculty', 'admin') NOT NULL DEFAULT 'student', passport_tries TINYINT UNSIGNED NOT NULL DEFAULT 0, passport_locked BOOL NOT NULL DEFAULT 'false', passport_lastaccess DATETIME NULL, PRIMARY KEY(passport_id), INDEX Passports_FKIndex1(location_id), INDEX Passports_FKIndex2(user_id) ) TYPE=InnoDB;
CREATE TABLE Subjects ( subject_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, subject_name VARCHAR(50) NOT NULL, subject_offered BOOL NOT NULL, subject_grade ENUM('1', '2', '3', '4', '5', '6') NOT NULL, PRIMARY KEY(subject_id) ) TYPE=InnoDB;
CREATE TABLE Users ( user_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, address_id INTEGER UNSIGNED NOT NULL, user_fname VARCHAR(20) NOT NULL, user_mletter VARCHAR(1) NULL, user_lname VARCHAR(20) NOT NULL, user_grade FLOAT NOT NULL, user_type ENUM('student', 'faculty') NOT NULL DEFAULT 'student', user_balance FLOAT NOT NULL, user_phone CHAR(15) NOT NULL, user_email VARCHAR(50) NOT NULL, PRIMARY KEY(user_id), INDEX Users_FKIndex1(address_id) ) TYPE=InnoDB;
That script runs just fine on MySQL and generates my application's tables with the correct relationships intact, indexes, etc.
However, as I said, I need this setup in MS SQL with a few additional checks and I've hand converted most of this, not knowing how to properly maintain primary keys or foreign keys:
Code:
CREATE TABLE Addresses ( address_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
address_line1 VARCHAR(30) NOT NULL,
address_line2 VARCHAR(30) NULL,
address_city VARCHAR(30) NOT NULL,
address_state VARCHAR(2) NOT NULL,
address_zip ZIPCODE CONSTRAINT CK_address_zip CHECK (address_zip LIKE '[0-9][0-9][0-9][0-9][0-9] ') )
CREATE TABLE Broadcasts ( broadcast_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
address_id INT NOT NULL,
broadcast_title VARCHAR(30) NOT NULL,
broadcast_message VARCHAR(255) NOT NULL,
broadcast_image VARCHAR(255) NOT NULL,
broadcast_date_posted DATETIME NOT NULL,
broadcast_date_expires DATETIME NOT NULL,
broadcast_date_archived DATETIME NULL,
broadcast_clicks INT NOT NULL DEFAULT 0,
broadcast_type CHAR(1) NOT NULL DEFAULT(‘a’),
broadcast_link VARCHAR(255) NULL )
CREATE TABLE Classes ( user_id INT PRIMARY KEY NOT NULL,
subject_id INT NOT NULL,
class_grade INT NOT NULL DEFAULT 100,
class_tardies INT NOT NULL DEFAULT 0,
class_absences INT NOT NULL DEFAULT 0 )
CREATE TABLE Classes_have_Grades ( subject_id INT NOT NULL,
user_id INT PRIMARY KEY NOT NULL,
grade_id INT NOT NULL )
CREATE TABLE Grades ( grade_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
Grade INT NOT NULL,
grade_type CHAR(1) NOT NULL DEFAULT(‘h’),
grade_desc VARCHAR(50) NOT NULL )
CREATE TABLE Locations ( loc_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
address_id INT NOT NULL,
location_id VARCHAR(20) NOT NULL,
location_name VARCHAR(25) NOT NULL )
CREATE TABLE Passports ( passport_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
user_id USERID NOT NULL CONSTRAINT CK_user_id CHECK (user_id LIKE '[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9]'),
location_id INT NOT NULL,
passport_user VARCHAR(7) NOT NULL,
passport_code VARCHAR(32) NOT NULL,
passport_access CHAR(1) NOT NULL DEFAULT(‘s’),
passport_tries TINYINT NOT NULL DEFAULT(0),
passport_locked BOOL NOT NULL DEFAULT(false),
passport_lastaccess DATETIME NULL )
CREATE TABLE Subjects ( subject_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
subject_name VARCHAR(50) NOT NULL,
subject_offered BOOL NOT NULL,
subject_grade SMALLINT NOT NULL DEFAULT 6 )
CREATE TABLE Users ( user_id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
address_id INT NOT NULL,
user_fname VARCHAR(20) NOT NULL,
user_mletter CHAR(1) NULL,
user_lname VARCHAR(20) NOT NULL,
user_grade FLOAT NOT NULL,
user_type CHAR(1) NOT NULL DEFAULT(‘s’),
user_balance FLOAT NOT NULL,
user_phone CHAR(15) NOT NULL,
user_email VARCHAR(50) NOT NULL )
Unfortunately, Query Analyzer seems to have a problem and says I have an error in my syntax (on line 74) near "'".
I've googled around and found out a couple of things: TSQL doesn't support enumerations (that I'm aware of - therefore I converted my enum fields to CHAR(1)s or INTs) and that the single quotes surrounding default values is the proper way to do DEFAULT values. I can't figure out for the life of me what's wrong with my syntax and I've been going at this for about 4 hours now.
If you can help me out by explaining how I should properly do the PKs/FKs (I believe there's a keyword REFERENCE(field1, field2) for FKs, but I'm not sure where to place it, etc.) I'll go through the SQL script and try to implement it, but I have a feeling this is going to be a long thread if I do get someone willing to help.
Thanks to everyone who took the time to read this, Ahad L. Amdani
i have a weird situation here, i tried to load a unicode file with a flat file source component, one of file lines has data like any other line but also contains the character "ÿ" which i can't see or find it and replace it with empty string, the source component parses the line correctly but if there is a data type error in this line, the error output for that line gives me this character "ÿ" instead of the original line.
simply, the error output of flat file source component fail to get the original line when the line contains hidden "ÿ".
here is my code the falue of pr_h_reqby is "Test" Dim strconn As New SqlConnection(connstring) Dim myReqdata As New DataSet Dim mycommand As SqlDataAdapter Dim sqlstr As String = "select pr_H_reqby from tbl_pr_header where pr_h_recid = " & recid & "" mycommand = New SqlDataAdapter(sqlstr, strconn) mycommand.Fill(myReqdata, "mydata") If myReqdata.Tables(0).Rows.Count > 0 Then 'lblReqID.Text = myReqdata.Tables(0).Rows("reqid").ToString lblNameVal.Text = myReqdata.Tables("mydata").Rows("pr_H_reqby").ToString() lblEmailVal.Text = myReqdata.Tables("mydata").Rows("pr_h_reqemail").ToString() lblReqDateVal.Text = myReqdata.Tables("mydata").Rows("pr_h_reqdate").ToString() lblneedval.Text = myReqdata.Tables("mydata").Rows("pr_h_needdt").ToString() lblDeptval.Text = myReqdata.Tables("mydata").Rows("pr_h_dept").ToString() txtbxReqDesc.Text = myReqdata.Tables("mydata").Rows("pr_h_projdesc").ToString() End If
i have migrated a DTS package wherein it consists of SQL task.
this has been migrated succesfully. but when i execute the package, i am getting the error with Excute SQL task which consists of Store Procedure excution.
But the SP can executed in the client server. can any body help in this regard.
Hi, all I'm getting this error at runtime when my page tries to populate a datagrid. Here's the relevant code. First, the user selects his choice from a dropdownlist, populated with a sqldatasource control on the aspx side:<asp:SqlDataSource ID="sqlDataSourceCompany" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [PayrollCompanyID], [DisplayName] FROM [rsrc_PayrollCompany] ORDER BY [DisplayName]"> </asp:SqlDataSource> And the dropdown list's code:<asp:DropDownList ID="ddlPayrollCompany" runat="server" AutoPostBack="True" DataSourceID="sqlDataSourcePayrollCompany" DataTextField="DisplayName" DataValueField="PayrollCompanyID"> </asp:DropDownList> Then, I use the selectedindexchanged event to bind the data to the datagrid. Here's that code: 1 Sub BindData() 2 3 Dim ds As New DataSet 4 Dim sda As SqlClient.SqlDataAdapter 5 Dim strSQL As String 6 Dim strCon As String 7 8 strSQL = "SELECT [SocialSecurityNumber], [Prefix], [FirstName], [LastName], [HireDate], [PayrollCostPercent], " & _ 9 "[Phone], [BadgeNumber], [IsSupervisor], [SupervisorID], [IsUser], [IsScout] FROM [rsrc_Personnel] " & _ 10 "WHERE ([PayrollCompanyID] = @PayrollCompanyID)" 11 12 strCon = "Data Source=DATASOURCE;Initial Catalog=DATABASE;User ID=USERID;Password=PASSWORD" 13 14 sda = New SqlClient.SqlDataAdapter(strSQL, strCon) 15 16 sda.SelectCommand.Parameters.Add(New SqlClient.SqlParameter("@PayrollCompanyID", Me.ddlPayrollCompany.SelectedItem.ToString())) 17 18 sda.Fill(ds, "rsrc_Personnel") 19 20 dgPersonnel.DataSource = ds.Tables("rsrc_Personnel") 21 dgPersonnel.DataBind() 22 23 End Sub 24
I'm assuming my problem lies in line 16 of the above code. I've tried SelectedItemIndex, SelectedItemValue too and get errors for those, as well. What am I missing? Thanks for anyone's help! Cappela07
Hi, I'm having an SSIS package which gives the following error when executed :
Error: 0xC002F210 at Create Linked Server, Execute SQL Task: Executing the query "exec (?)" failed with the following error: "Syntax error or access violation". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.Task failed: Create Linked Server
The package has a single Execute SQL task with the properties listed below :
General Properties Result Set : None
ConnectionType : OLEDB Connection : Connected to a Local Database (DB1) SQLSourceType : Direct Input SQL Statement : exec(?) IsQueryStorePro : False BypassPrepare : False
Parameter Mapping Properties
variableName Direction DataType ParameterName
User::AddLinkSql Input Varchar 0
'AddLinkSql' is a global variable of package scope of type string with the value Exec sp_AddLinkedServer 'Srv1','','SQLOLEDB.1',@DataSrc='localhost',@catalog ='DB1'
When I try to execute the Query task, it fails with the above error. Also, the above the sql statement cannot be parsed and gives error "The query failed to parse. Syntax or access violation"
I would like to add that the above package was migrated from DTS, where it runs without any error, eventhough it gives the same parse error message.
I would appreciate if anybody can help me out of this issue by suggeting where the problem is.
Hi All, can someone help me, i've created a stored procedure to make a report by calling it from a website. I get the message error "241: Syntax error converting datetime from character string" all the time, i tryed some converting things but nothig works, probably it is me that isn't working but i hope someone can help me. The code i use is:
CREATE proc CP_Cashbox @mID varchar,@startdate datetime,@enddate datetime as set dateformat dmy go declare @startdate as varchar declare @enddate as varchar
--print "query aan het uitvoeren"
select sum(moneyout) / sum(moneyin)*100 as cashbox from dbo.total where machineID = '@mID' and njdate between '@startdate' and '@enddate' GO
ALTER TABLE [dbo].[CalCalendar] ALTER COLUMN [OID] uniqueidentifier NOT NULL PRIMARY KEY NONCLUSTERED
is answered with:
Server: Msg 156, Level 15, State 1, Line 2 Incorrect syntax near the keyword 'PRIMARY'.
which I consider to be interesting. Anyone has an idea why? I checked documentation but I do not see an error.
Note that:
ALTER TABLE [dbo].[CalCalendar] ALTER COLUMN [OID] uniqueidentifier NOT NULL
DOES get executed, and
ALTER TABLE [dbo].[CalCalendar] ALTER COLUMN [OID] uniqueidentifier NOT NULL PRIMARY KEY
produces the same error.
Now, in my understanding this has nothing to do with an index may already exist etc. - the eror indicates a SYNTAX error, before any checking. Makes no sense to me, though, reading the documentation.
Hi, I'm writing a stored procedure and when I click on the Check Syntax button its giving me the error in the subject. I'm not really sure whats wrong with this. Here is my Stored Procedure code. Any help wud be appreciated.
Hi,I keep getting the error:System.Data.SqlClient.SqlException: Conversion failed when converting the varchar value '@qty' to data type int. When I initiate the insert and update.I tried adding a: Convert.ToInt32(TextBox1.Text), but it didn't work.. I also tried fiddling with the update code, but I think it is to do with the insert bool as the update works at the moment.. Could someone help?My code:private bool ExecuteUpdate(int quantity){ SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True"; con.Open(); SqlCommand command = new SqlCommand(); command.Connection = con; TextBox TextBox1 = (TextBox)FormView1.FindControl("TextBox1"); Label labname = (Label)FormView1.FindControl("Label3"); Label labid = (Label)FormView1.FindControl("Label13"); command.CommandText = "UPDATE Items SET Quantityavailable = Quantityavailable - '@qty' WHERE productID=@productID"; command.Parameters.Add("@qty", TextBox1.Text); command.Parameters.Add("@productID", labid.Text); command.ExecuteNonQuery(); con.Close(); return true;} private bool ExecuteInsert(String quantity) { SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True"; con.Open(); SqlCommand command = new SqlCommand(); command.Connection = con; TextBox TextBox1 = (TextBox)FormView1.FindControl("TextBox1"); Label labname = (Label)FormView1.FindControl("Label3"); Label labid = (Label)FormView1.FindControl("Label13"); command.CommandText = "INSERT INTO Transactions (Usersname,Itemid,itemname,Date,Qty) VALUES (@User,@productID,@Itemsname,@date,@qty)"; command.Parameters.Add("@User", System.Web.HttpContext.Current.User.Identity.Name); command.Parameters.Add("@Itemsname", labname.Text); command.Parameters.Add("@productID", labid.Text); command.Parameters.Add("@qty", Convert.ToInt32(TextBox1.Text)); command.Parameters.Add("@date", DateTime.Now.ToString()); command.ExecuteNonQuery(); con.Close(); return true; }protected void Button2_Click(object sender, EventArgs e){ TextBox TextBox1 = FormView1.FindControl("TextBox1") as TextBox; ExecuteUpdate(Int32.Parse(TextBox1.Text) );}protected void Button2_Command(object sender, CommandEventArgs e) { if (e.CommandName == "Update") { TextBox TextBox1 = FormView1.FindControl("TextBox1") as TextBox; ExecuteInsert(TextBox1.Text); } } Thanks so much if someone can!Jon
Please help.I have an aspx page with a drop down list(ddlCategories), and a datalist(dlLinks). The drop down lists data property is a uniqueidentifier from a table.When an item in the list is selected it fires the following:SqlLinks.SelectParameters("CategoryID").DefaultValue = ddlCategories.SelectedValuedlLinks.DataBind()The sqldatasource for the datalist runs a stored procedure (below)sp_GetLinks (@CategoryID ?) ASselect * from links where category = @categoryMy question is, what should @Category be declared as if the category column in the table is a uniqueidentifier? And what conversion do I need to do I just can't work it out, as I keep getting the following error:Implicit conversion from data type sql_variant to uniqueidentifier is not allowed. Use the CONVERT function to run this query. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Implicit conversion from data type sql_variant to uniqueidentifier is not allowed. Use the CONVERT function to run this query.Source Error:
Line 5: Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlCategories.SelectedIndexChangedLine 6: SqlLinks.SelectParameters("CategoryID").DefaultValue = ddlCategories.SelectedValueLine 7: dlLinks.DataBind()Line 8: End SubLine 9: End ClassSource File: C:Documents and SettingsKarl WallsMy DocumentsMy WebsAFRAlinks.aspx.vb Line: 7 Stack Trace:
This is the error message I get: :( Server: Msg 242, Level 16, State 3, Line 1 The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
This is the query: Select Qual_ins.CompanyCode, Qual_ins.ParticipantCode, Qual_ins.Ins_Code, Qual_ins.Plan_Code, dbo.PremiumRate(Qual_Ins.Crit,Qual_Ins.PQB_Spec,Pl an_Mas.Extend_Fee, Qual_Ins.Adjpremium,Qual_Ins.Adjpremiumper,Qual_In s.Adjpremend, GetDate(),Qual_Ins.Cover_Amt, Plan_Mas.CR_A, Plan_Mas.CR_B, Plan_Mas.CR_C, Plan_Mas.CR_D, Plan_Mas.CR_E, Plan_Mas.CR_F, Plan_Mas.CR_G, Plan_Mas.CR_H, Plan_Mas.CR_I, Plan_Mas.CR_J, Plan_Mas.CR_K, Plan_Mas.CR_L, Plan_Mas.CR_M, Plan_Mas.CR_N, Plan_Mas.CR_O) AS PremiumRate FROM Qual_ins, Plan_Mas WHERE Qual_Ins.CompanyCode = 'ACME' AND Qual_ins.ParticipantCode = 4 AND Plan_Mas.CompanyCode = Qual_ins.CompanyCode AND Plan_Mas.Ins_Code = Qual_ins.Ins_Code AND Plan_Mas.Plan_Code = Qual_ins.Plan_Code Order BY Qual_ins.Ins_Code
Please let me know if you need to see my PremiumRate (User Defined Function) in order to help me elimate this error message. Any help is appreciate! I'm new to this.... "Hello" to all!
I have a dts package that imports data from a comma delimited .csv file.
I'm getting a conversion invalid for datatypes on column pair 1 (source 'col0012' (DBTYPE_STR), destination column 'latitude' (DBTYPE_R8)).
So, the source file is populated as a string for 'col002' and I have that field specified as a float within my table. Float is the correct type for the value.
How can I make the conversion correctly during the dts execution.
Using SQL 2005. Getting the following error. Using a cursor to update a table. I need to pass through the table two different times. The fields in the table update fine on the first time through, but on the 2nd time through I get the following error: Conversion failed when converting datetime from character string.
Thank you for your help. David
FETCH NEXT FROM DEQ INTO @GRGR_ID, @SGSG_ID, @SBSB_ID, @PASS1_GENERATION_DATE, @PASS1_TOTAL_AMOUNT_DUE, @STATUS_FLAG, @STATUS_FLAG_INSERT_DT
WHILE @@FETCH_STATUS = 0
BEGIN UPDATE dbo.RPT_DELINQUENCY_TEST SET PASS1_GENERATION_DATE = GETDATE() WHERE SBSB_ID=@SBSB_ID AND GRGR_ID=@GRGR_ID
UPDATE dbo.RPT_DELINQUENCY_TEST SET STATUS_FLAG = 'B' WHERE SBSB_ID=@SBSB_ID AND GRGR_ID=@GRGR_ID
UPDATE dbo.RPT_DELINQUENCY_TEST SET STATUS_FLAG_INSERT_DT = GETDATE() WHERE SBSB_ID=@SBSB_ID AND GRGR_ID=@GRGR_ID
FETCH NEXT FROM DEQ INTO @GRGR_ID, @SGSG_ID, @SBSB_ID, @PASS1_GENERATION_DATE, @PASS1_TOTAL_AMOUNT_DUE, @STATUS_FLAG, @STATUS_FLAG_INSERT_DT END
Hi, can anyone please shed some light on this error:
[OLE DB Destination [466]] Error: There was an error with input column "Price" (518) on input "OLE DB Destination Input" (479). The column status returned was: "Conversion failed because the data value overflowed the specified type.".
The column "price" is a numeric (9)
In the flat file connection manager, the datatype for the price column is a float [dt r4]. I've also tried numeric, etc.
Basically I am trying to create a package that will
(A) Create a table with specified datatypes
(B) Use a text Source file for the data
(C) on Success Completion of the "Execute SQL" transform the data from the text into the table.
Connect to DB <-- [TRANSFROM]-- Text (Source) <-- Execute SQL (Create Table)
It all seems to work now but when I run the package I get the following error
The number of failing rows exceeds the maximum specified.
TransformCopy 'DTSTransformation_6'conversion error: Conversion invalid for datatypes on column on pair 1 (source column 'Col007' (DBTYPE_STR),destination column 'Rec_Amt' (DBTYPE_CY)).
But when I go into the TransformDataTask, under transformation and test that column it all works fine, infact I tested all the columns and they all seem to work fine.
It also seems to be creating the same table twice first in the " Execute SQL" task and then again for some reason in the "DataTransform" task. I dont know if that is realted to the problem or not though.
Any idea's or suggestions I could try ?
Im very new to SQL 2000 & DTS so dont rule out any very newbie errors :)
I have a function that retrieves a data set from a passed SQL string. I'm getting this weird error.
Input string was not in a correct format
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: Input string was not in a correct format.
Source Error:
Line 205: sSQL = "Select * From LedgerDetails Where LedgerID = " & _LedgerID.ToString() Line 206: msgbox(sSQL) Line 207: TransactionDetails = GetDataSet(sSQL) Line 208: Line 209: _TransactionsIndex = CShort(Val(GetDataValue("Select Count() From LedgerDetails Where LedgerID = " & CStr(_LedgerID)))) -1
Source File: C:Documents and SettingsOwnerMy DocumentsUniversityFall 2004DSSASP WorkAlgorithmTest.aspx Line: 207
Stack Trace:
[FormatException: Input string was not in a correct format.] Microsoft.VisualBasic.CompilerServices.DoubleType.Parse(String Value, NumberFormatInfo NumberFormat) +184 Microsoft.VisualBasic.CompilerServices.IntegerType.FromString(String Value) +96
[InvalidCastException: Cast from string "Select * From LedgerDetails Wher" to type 'Integer' is not valid.] Microsoft.VisualBasic.CompilerServices.IntegerType.FromString(String Value) +211
I have no idea why, but it seems to trying to convert the string into an integer. Both the argument and the parameter in the function are strings. I checked on the internet and the usual response is this is because the SQL is incomplete, but I have it showing me the compiled SQL string, and it is not imcomplete. I've tried hotwiring the query to match something I know will work, and I still get the same error. I've also tried compile the string using .ToString() on my number portion, storing the converted number into a string and only combining strings on the call, using another string variable as a temporary holder, using the String.Concat function, and even CStr. There is no way possible that this thing is an integer when the call is sent...
I'm trying to create a jbo to run in SQL that will update my table DeviationMaster in crcwebauth table, with the value from qvqote in table invoice_tbl in database crcbrio...I get an error in the job that says...SQLSTATE 42000 Error 8114 Error converting data type varchar to numericThe field DNumber in the DeviationMaster table is numeric 9, and qvqote is char 6.I know about the cast/convert, but I havent been able to successfully do this. I was hoping someone could show me how to get around this problem.Here is my current SQL statement that triggers the above error:update crcwebauth.dbo.deviationmaster set ldate = (select max(qvdate) from crcbrio.dbo.invoice_tbl where DNumber = qvqote)
I am running a 'simple' stored procedure from the Query Analyser (command - FindCustomer L18239, [ ]) which should return a name from a customer table from the input id. It does return the name but I keep getting the message 'Server: Msg 245, Level 16, State 1, Procedure FindCustomer, Line 9 Syntax error converting the varchar value 'Kevin ' to a column of data type int.' - Any ideas what I've done wrong?, thanks.
I am using DTS to import a DB2 table from the mainframe and export the table in text format to a shared folder. I want to convert two fields to a date format yyyy-mm-dd. RELSE_Date is in this format and Updtts is a timestamp coming from the mainframe. The text file is all vchar. In dts here is my query pulling from the mainframe SELECT A.PROD_ORDER_NUMBER, A.DYE_SEQUENCE, A.STYLE, A.COLOR, A.SIZE, A.STATUS_IND, A.STATUS_CODE, A.QUANTITY_REC_DC, B.SHIP_OTFQ_QTY, A.MRP_PACK_CODE, A.LABELS_PRINTED, date(A.RELSE_DATE) as RELSE_DATE, date(A.UPDTTS) as UPDtts, A.LOCATION FROM DB2.WP1_PO_CUST_REQ A, DB2.WP1_DYE_LOT_REQ B WHERE A.PROD_ORDER_NUMBER = B.PROD_ORDER_NUMBER AND A.DYE_SEQUENCE = B.DYE_SEQUENCE AND A.STYLE = B.STYLE AND A.COLOR = B.COLOR AND A.SIZE = B.SIZE AND (A.PROD_ORDER_NUMBER LIKE '__K____') When I parse the query it accepts it. When I run the DTS I get an error stating (SQL STATE 220077 SQLCODE -180) The sting representation of a datetime value has invalid syntax. Does anyone have a suggestion on how to convert these fields before the text file is exported or another output format that is similar to .dat in comma delimited format? Thank you.
I'm importing data from a text table, into a temp table, and then on to a final working table. I'm running into difficulty converting data from text into a 'datetime' format. I'm getting the following error:
"Arithmetic overflow error" when trying to convert into a column with the data type "DateTime"
I half expected it to reject all conversions into a Date format because of the source file being in text format, but it allows this conversion in other columns.
If I switch the Data type to 'nvarchar' instead of 'datetime' it converts and pops up with a date format.
My question is: Will this nvarchar that looks like a date behave like a date? For example, if someone tries to perform a calculation with a date format, will the nvarchar suffice, or would it cause problems?
We've been running into this problem and it is becoming very urgent and critical to resolve it.
I am running a package called "Inventory", using a system (for both commercial and accounting operations, called "Sage") having "CBase" as database.
When we run the package to given date parameter "To Date", let's say "18/03/2008", it runs successfully. However, when we run it to "31/03/2008", we got a error message (the message is translated from french), as following: Simba ODBC Driver: Error in a predicate Conversion error into date type Backup Memory pool invoked. Please report this error to customer support.
I will really appreciate any hint or feedback, helping me to resolve this issue. Thank you in advance.
i am passing date value from a textbox in c# and asp.net. i am calling an sql procedure . The result is binding to a datagrid. my sql procedure is like this
) as DECLARE @SQL varchar(5000) SET @SQL = 'select Customers.CustomerFirstName as Name,ComplaintLog.LogDate,ComplaintLog.LogID, ComplaintLog.ComplaintStatus,ComplaintLog.DueDate,ComplaintCategories.CategoryName from ComplaintLog Join ComplaintCategories on ComplaintLog.CategoryID=ComplaintCategories.CategoryID join Customers on ComplaintLog.CustomerID=Customers.CustomerID where ComplaintLog.IsActive=1'
IF Datalength(@FirstName)>0 SET @SQL = @SQL + ' AND Customers.CustomerFirstName LIKE ''' + @FirstName + '%'''
IF Datalength(@DueDate)>0 SET @SQL = @SQL + ' AND Convert(DateTime(10),ComplaintLog.DueDate,101) = '+@DueDate + ' '
EXEC (@SQL) GO
my error is Syntax error converting datetime from character string.
if i pass nothing in test boxit will show another error
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
I am getting an issue when I am using a stored proc from a view. I am to returning values, one being a varchar(50).
When I run the view, the values for this column and all others are returned fine. When I run the stored procedure, the following error is shown:
Conversion failed when converting the varchar value 'ejoy' to data type int.
All other values return fine bar this one column and as I said its already a varchar in the table so I don't know why sql server (2005) thinks I want to convert it, I don't and at no point have tried to. Below is my query statement
quote:SELECT u.User_fname, pv.PV_address, p.Start_monitoring, p.Last_monitoring, p.Period_of_monitoring, m.Ongoing_maintenance, m.Savings_for_inverter_replacement, m.Monitoring, m.Total_anual_maint_and_monitor FROM PerformanceData p, MonitoringCost m, Photovoltaic pv, Users u WHERE p.Performance_id=m.MonitoringCost_id and pv.PV_id=p.Performance_id and pv.PV_id=m.MonitoringCost_id and u.User_id =p.Performance_id and u.User_id =pv.PV_id and u.User_id = m.MonitoringCost_id
This error has been displayed quote:Conversion failed when converting the varchar value 'ejoy' to data type int.
I keep getting this conversion error when I run this query: If I comment from the second part of the where clause it goes away? I can't figure out how to fix this!
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'B' to data type int.
Select sE.SSN, sE.enroll_yyyyQ_Code, sE.Sched_Switch, sE.gdb_Switch, sE.Fee_Switch, sE.Rank_Code, sE.Class_Code, sE.Status_Code, sE.Prim_Coll_Code, sE.Secondary_Coll_Code, sE.Dept_Major_Code, sR.Client_ID, sR.Contact_Number, master.dbo.fn_InitCap(nM.last_name) Last_Name, master.dbo.fn_InitCap(nM.first_name) First_Name, master.dbo.fn_InitCap(nM.mid_name) Middle_Name, nM.sfx_name, eA.Published_eMail_Address /* Tables ................................................................ */ From FCoBDB.Student_Current.dbo.enrollment sE With ( noLock ) JOIN FCOBDB.Student_Current.dbo.Name nM With ( noLock ) ON sE.SSN = nM.SSN LEFT OUTER JOIN FCoBDB.Student_Current.dbo.eMail_Address eA With ( noLock ) ON sE.SSN = eA.SSN LEFT OUTER JOIN ADIS_Import_Support.dbo.Student_Records sR With ( noLock ) ON sE.SSN = sR.SSN /* Selection Clauses ...................................................... */ Where /* Undergraduate Business Students .................................. */ ( sE.prim_coll_code = 'BUS' and sE.dept_major_code <> '805' and sE.status_code = 1 and /* Good citizens */ sE.enroll_yyyyq_code = 20074 and /* current quarter only */ sR.Client_ID IS NULL ) /* Data not in Maximizer! */ or /* Executive Education Students ..................................... */ ( sE.prim_coll_code = 'GRD' and sE.dept_major_code = '296' and sE.status_code = 1 and /* Good citizens */ sE.enroll_yyyyq_code = 20074 and /* current quarter only */ sR.Client_ID IS NULL ) /* Data not in Maximizer */ /* Sort Options ........................................................... */ order By nM.last_name, nM.first_name ;
I have created an SSIS package to run on a SQL 2005 server. This SSIS pkg was migrated from 2000 to 2005. There a Data transform task in that package to transfer data from a tbl on one server to another. In source tbl, datatype is text, and in dest (2005 tbl) datatype is nvarchar(1000). This data transfer worked just fine , in 2000 but in 2005 it is giving the foll error. But when I run my package, i get back the following error 'Column "xxx" cannot convert between unicode and non-unicode string data types'.
I tried using the data covnersion task, to convert to DT-STR, But is still failing.
I have a problem with a datetime field. In the database is stored as datetime (121 format) ex. 2008-05-20 17:30:00.000 I have a simple select query (no datetime conversions used) and the result I get from the report looks like 5/20/2008 5:30 PM.
I dont want this format so i use this custom dd:MM:yyyy hh:mms
After that i get the dates like this 5/20/2008 5:30 instead of 17:30.
I am getting the following error when I try to do a simple data conversion of columns, the columns I am converting are integer and nvarchar and I am converting them into DT_str.
[Data Conversion [16]] Error: Data conversion failed while converting column 'A' (53) to column "Copy of A" (95). The conversion returned status value 8 and status text "DBSTATUS_UNAVAILABLE".
[Data Conversion [16]] Error: The "output column "Copy of A" (95)" failed because error code 0xC020908E occurred, and the error row disposition on "output column "Copy of A" (95)" specifies failure on error. An error occurred on the specified object of the specified component.