Error converting type

my code throws error:
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to float.
Code:
ALTER FUNCTION [dbo].[GetPayDeducted]
@emplID int,
@month VARCHAR(50) = NULL
RETURNS int
AS
BEGIN
Declare @StartDate Date, @EndDate Date, @mydate date,
@TotalDays int, @TotalHours int, @BasicSalary float,
@BSalaryHour int, @TotalSalaryDeducted float, @hms varchar(100),
@hrs int, @mts int, @TotalHoursDeducted float,
@hrsDeducted float
Set @hrsDeducted = dbo.GetHoursDeducted(@emplID, @month)
set @hms = @hrsDeducted
Set @hrs = LEFT(@hms,charindex(':',@hms)-1)
set @mts=RIGHT(@hms,len(@hms)-charindex(':',@hms))
set @TotalHoursDeducted = @hrs + (@mts/60.0)
Set @mydate = GETUTCDATE()
Set @StartDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101))
Set @EndDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101))
Set @TotalDays =((DATEDIFF(dd, @StartDate, @EndDate) + 1)
-(DATEDIFF(wk, @StartDate, @EndDate) * 1)
-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END))
Set @TotalHours = (@TotalDays * 8)
Set @BasicSalary = (Select BasicSalary from HrEmployee where EmplID=@emplID)
--Set @TotalHoursWorked = (Select OverallTime from MonthlyRecord where EmplID = @emplID AND Month = @month )
Set @BSalaryHour = @BasicSalary / @TotalHours
Set @TotalSalaryDeducted = @BSalaryHour * @TotalHoursDeducted
-- Return the result of the function
RETURN @TotalSalaryDeducted
END
Note: i am calling another function in this line:
@hrsDeducted = dbo.GetHoursDeducted(@emplID, @month)
This one:
ALTER FUNCTION [dbo].[GetHoursDeducted]
@emplID int,
@month varchar(50)
RETURNS varchar(11)
AS
BEGIN
Declare @StartDate Date, @EndDate Date, @mydate date,
@TotalDays int, @TotalHours int, @BasicSalary float,
@BSalaryHour int, @TotalSalary float, @hms varchar(100),
@hrs int, @mts int, @TotalHoursWorked float,
@hrsDeducted float,@hrsDeductedTimeEq varchar(11)
set @hms = (Select OverallTime from MonthlyRecord where EmplID = @emplID AND Month = @month )
Set @hrs = LEFT(@hms,charindex(':',@hms)-1)
set @mts=RIGHT(@hms,len(@hms)-charindex(':',@hms))
set @TotalHoursWorked = @hrs + (@mts/60.0)
Set @mydate = GETUTCDATE()
Set @StartDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101))
Set @EndDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101))
Set @TotalDays =((DATEDIFF(dd, @StartDate, @EndDate) + 1)
-(DATEDIFF(wk, @StartDate, @EndDate) * 1)
-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END))
Set @TotalHours = (@TotalDays * 8)
Set @BasicSalary = (Select BasicSalary from HrEmployee where EmplID=@emplID)
--Set @TotalHoursWorked = (Select OverallTime from MonthlyRecord where EmplID = @emplID AND Month = @month )
Set @BSalaryHour = @BasicSalary / @TotalHours
Set @TotalSalary = @BSalaryHour * @TotalHoursWorked
Set @hrsDeducted = @TotalHours - @TotalHoursWorked
Set @hrsDeductedTimeEq= CAST(FLOOR(@hrsDeducted) AS varchar(5)) + ':' + CAST((@hrsDeducted-FLOOR(@hrsDeducted))*60 AS varchar(5))
-- Return the result of the function
RETURN @hrsDeductedTimeEq
END

thats because now return type of function has changed so you should make it varchar
ALTER FUNCTION [dbo].[GetPayDeducted]
@emplID int,
@month VARCHAR(50) = NULL
RETURNS int
AS
BEGIN
Declare @StartDate Date, @EndDate Date, @mydate date,
@TotalDays int, @TotalHours int, @BasicSalary float,
@BSalaryHour int, @TotalSalaryDeducted float, @hms varchar(100),
@hrs int, @mts int, @TotalHoursDeducted float,
@hrsDeducted varchar(11)
Set @hrsDeducted = dbo.GetHoursDeducted(@emplID, @month)
set @hms = @hrsDeducted
Set @hrs = LEFT(@hms,charindex(':',@hms)-1)
set @mts=RIGHT(@hms,len(@hms)-charindex(':',@hms))
set @TotalHoursDeducted = @hrs + (@mts/60.0)
Set @mydate = GETUTCDATE()
Set @StartDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101))
Set @EndDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101))
Set @TotalDays =((DATEDIFF(dd, @StartDate, @EndDate) + 1)
-(DATEDIFF(wk, @StartDate, @EndDate) * 1)
-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END))
Set @TotalHours = (@TotalDays * 8)
Set @BasicSalary = (Select BasicSalary from HrEmployee where EmplID=@emplID)
--Set @TotalHoursWorked = (Select OverallTime from MonthlyRecord where EmplID = @emplID AND Month = @month )
Set @BSalaryHour = @BasicSalary / @TotalHours
Set @TotalSalaryDeducted = @BSalaryHour * @TotalHoursDeducted
-- Return the result of the function
RETURN @TotalSalaryDeducted
END
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

Similar Messages

  • Error converting data type nvarchar to numeric 'witholding tax' (OWHT)

    Hi Guys.
    After I have upgraded my clients 2007 PL 30 database to 8.81 PL05, and running a repair to fix inconsistincies, I am receiveing some error when opening any sales documents.
    It takes place when I open a sales document, or browse previous docs. When browsing previous docs, it onlly happens on some of them.
    I also receive a different error when viewing sales orders: Error converting data type nvarchar to numeric (CRD2).
    Any ideas how to fix it?
    It does not limit me from processing and using the rest of the functionality. All calculations with queries in the docs are still working.
    Thanks.

    Hi,
    Please check Note No. : 1402855 and see if the same applied to the issue mentioned by you.
    Kind Regards,
    Jitin
    SAP Business One Forum Team

  • Saving result from sp_executesql into a variable and using dynamic column name - getting error "Error converting data type varchar to numeric"

    Im getting an error when running a procedure that includes this code.
    I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql
    DECLARE @retval AS DECIMAL(12,2)
    DECLARE @MonthVal VARCHAR(20), @SpreadKeyVal INT
    DECLARE @sqlcmd AS NVARCHAR(150)
    DECLARE @paramdef NVARCHAR(150)
    SET @MonthVal = 'Month' + CAST(@MonthNumber AS VARCHAR(2) );
    SET @SpreadKeyVal = @SpreadKey; --CAST(@SpreadKey AS VARCHAR(10) );
    SET @sqlcmd = N' SELECT @retvalout = @MonthVal FROM dbo.CourseSpread WHERE CourseSpreadId = @SpreadKeyVal';
    SET @paramdef = N'@MonthVal VARCHAR(20), @SpreadKeyVal INT, @retvalout DECIMAL(12,2) OUTPUT'
    --default
    SET @retval = 0.0;
    EXECUTE sys.sp_executesql @sqlcmd,@paramdef, @MonthVal = 'Month4',@SpreadKeyVal = 1, @retvalout = @retval OUTPUT;
    SELECT @retval
    DECLARE @return_value DECIMAL(12,2)
    EXEC @return_value = [dbo].[GetSpreadValueByMonthNumber]
    @SpreadKey = 1,
    @MonthNumber = 4
    SELECT 'Return Value' = @return_value
    Msg 8114, Level 16, State 5, Line 1
    Error converting data type varchar to numeric.

    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your data. You should follow ISO-11179 rules for naming data elements. You should follow ISO-8601 rules for displaying temporal data. We need
    to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL. And you need to read and download the PDF for: 
    https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
    >> I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql <<
    This is so very, very wrong! A column is an attribute of an entity. The idea that you are so screwed up that you have no idea if you want
    the shoe size, the phone number or something else at run time of this entity. 
    In Software Engineering we have a principle called cohesion that says a model should do one and only one task, have one and only one entry point, and one and only one exit point. 
    Hey, on a scale from 1 to 10, what color is your favorite letter of the alphabet? Yes, your mindset is that level of sillyity and absurdity. 
    Do you know that SQL is a declarative language? This family of languages does not use local variables! 
    Now think about “month_val” and what it means. A month is a temporal unit of measurement, so this is as silly as saying “liter_val” in your code. Why did you use “sp_” on a procedure? It has special meaning in T-SQL.  
    Think about how silly this is: 
     SET @month_val = 'Month' + CAST(@month_nbr AS VARCHAR(2));
    We do not do display formatting in a query. This is a violation of at the tiered architecture principle. We have a presentation layer. But more than that, the INTERVAL temporal data type is a {year-month} and never just a month. This is fundamental. 
    We need to see the DDL so we can re-write this mess. Want to fix it or not?
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Crystal Data Conversion Issue (Error converting data type varchar to datetime)

    Hi,
    I can run stored procedure without error in SQL Server using my personal credentials as well as database credentials.
    I can also run Crystal Report after connecting to Stored procedure without error on my desktop using my personal credentials as well as database credentials.
    But when I upload the crystal report in BOBJDEV and when I run using database credentials report fails saying that "Error in File ~tmp1d1480b8e70fd90.rpt: Unable to connect: incorrect log on parameters. Details: [Database Vendor Code: 18456 ]" but I can run the crystal report successfully on BOBJDEV using my personal credentials.
    I googled (Data Conversion Error Message) about this issue & lot of people asked to do "Verify Database" in Crystal Report. So I did that, but when I do it I am getting a error message like this:
    Error converting data type varchar to datetime.
    Where do you think the error might be occurring? Did anyone faced this kind of issue before? If so, how to resolve it?
    (FYI, I am using Crystal Reports 2008, & for stored procedure I have used SSMS 2012 )
    Please help me with this issue.
    Thanks & Regards.
    Naveen.

    hello Naveen,
    since the report works fine in the cr designer / desktop, we need to figure out where you should post this question.
    by bobjdev do you mean businessobjects enterprise or crystal reports server? if so please post this question to the bi platform space.
    -jamie

  • CAST Not working for me - Arithmetic overflow error converting int to data type numeric - error

    GPM is DECIMAL(5,2)
    PRICE is DECIMAL(11,4)
    COST is DECIMAL(7,2)
    Trying to update the Gross Profit Margin % field and I keep getting the "Arithmetic overflow error converting int to data type numeric" error.
    UPDATE SMEMODETAIL SET SMD_GPM = (SMD_PRICE-SMD_COST) / SMD_PRICE * 100
    FROM SMEMODETAIL WHERE SMD_PRICE<>0 AND SMD_QUANTITY<>0
    Example record:
    SMD_PRICE    SMD_COST    GPM%
    1.8500            1.62                12.4324324324324300
    I added cast and I still get the error.
    How do I format to get this to work?
    Thanks!

    Hi GBerthume,
    The error is caused by some value such as 1000.01 of the expression (SMD_PRICE-SMD_COST) / SMD_PRICE * 100 exceeds the
    precision of the column(DECIMAL(5,2)). The example data doesn't cause the overflow error for the value of the expression is 12.43 which is in the scope of DECIMAL(5,2).
    USE TestDB
    CREATE TABLE SMEMODETAIL
    SMD_PRICE DECIMAL(11,4),
    SMD_COST DECIMAL(7,2),
    SMD_GPM DECIMAL(5,2)
    INSERT INTO SMEMODETAIL(SMD_PRICE,SMD_COST) SELECT 1.8500,1.62
    UPDATE SMEMODETAIL SET SMD_GPM = (SMD_PRICE-SMD_COST) / SMD_PRICE * 100
    FROM SMEMODETAIL WHERE SMD_PRICE<>0-- AND SMD_QUANTITY<>0
    SELECT * FROM SMEMODETAIL
    DROP TABLE SMEMODETAIL
    The solution of your case can be either scale the DECIMAL(5,2) or follow the suggestion in Scott_morris-ga's to check and fix your data.
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • ActionScript 3.0: Error #1034: Type Coercion failed: cannot convert displayObject$ to DefaultPackage

    I'm a student I have a final project want to deliver it after two days.
    I'm making a drag and drop game, I watched a tutorial to do that.
    But after ending coding I faced a weird error!
    I've I checked that my code is the same as the code in the tutorial.
    This is the Debug error report:
        Attempting to launch and connect to Player using URL E:\FL\ActionScript\Drag and Drop Project\DragAndDrop.swf
        [SWF] E:\FL\ActionScript\Drag and Drop Project\DragAndDrop.swf - 87403 bytes after decompression
        TypeError: Error #1034: Type Coercion failed: cannot convert paper1$ to DragDrop.
                  at Targets()[E:\FL\ActionScript\Drag and Drop Project\Targets.as:23]
    My `.fla` File is containing 12 Objects to drag and another 12 Objects to drop on it.
    The idea here is when drop the Object on the target the Object will become invisible and the target become visible (in `.fla` file `target alpha = 0`).
    I made two classes:
    DragDrop.as : for the objects that I'm going to drag.
    Targets.as  : for the targets that I'm going to drop Objects on it.
    Note: match function is to animate "GameOver" MovieClip When complete the game.
    DragDrop.as:
        package
                  import flash.display.*;
                  import flash.events.*;
                  public class DragDrop extends Sprite
                            var origX:Number;
                            var origY:Number;
                            var target:DisplayObject;
                            public function DragDrop()
                                      // constructor code
                                      origX = x;
                                      origY = y;
                                      addEventListener(MouseEvent.MOUSE_DOWN, drag);
                                      buttonMode = true;
                            function drag(evt:MouseEvent):void
                                      stage.addEventListener(MouseEvent.MOUSE_UP, drop);
                                      startDrag();
                                      parent.addChild(this);
                            function drop(evt:MouseEvent):void
                                      stage.removeEventListener(MouseEvent.MOUSE_UP, drop);
                                      stopDrag();
                                      if(hitTestObject(target))
                                                visible = false;
                                                target.alpha = 1;
                                                Object(parent).match();
                                      x = origX;
                                      y = origY;
    Targets.as:
        package
                  import flash.display.*;
                  import flash.events.*;
                  public class Targets extends MovieClip
                            var dragdrops:Array;
                            var numOfMatches:uint = 0;
                            var speed:Number = 25;
                            public function Targets()
                                      // constructor code
                                      dragdrops = [paper1,paper2,paper3,paper4,paper5,paper6,
                                                                     paper7,paper8,paper9,paper10,paper11,paper12,];
                                      var currentObject:DragDrop;
                                      for(var i:uint = 0; i < dragdrops.length; i++)
                                                currentObject = dragdrops[i];
                                                currentObject.target = getChildByName(currentObject.name + "_target");
                            public function match():void
                                      numOfMatches++;
                                      if(numOfMatches == dragdrops.length)
                                                win.addEventListener(Event.ENTER_FRAME, winGame);
                            function winGame(event:Event):void
                                      win.y -= speed;
                                      if(win.y <= 0)
                                                win.y = 0;
                                                win.removeEventListener(Event.ENTER_FRAME, winGame);
                                                win.addEventListener(MouseEvent.CLICK, clickWin);
                            function clickWin(event:MouseEvent):void
                                      win.removeEventListener(MouseEvent.CLICK, clickWin);
                                      win.addEventListener(Event.ENTER_FRAME, animateDown);
                                      var currentObject:DragDrop;
                                      for(var i:uint = 0; i < dragdrops.length; i++)
                                                currentObject = dragdrops[i];
                                                getChildByName(currentObject.name + "_target").alpha = 0;
                                                currentObject.visible = true;
                                      numOfMatches = 0;
                                      addChild(win);
                            function animateDown(event:Event):void
                                      win.y += speed;
                                      if(win.y >= stage.stageHeight)
                                                win.y = stage.stageHeight;
                                                win.removeEventListener(Event.ENTER_FRAME, animateDown);
    ...Thanks

    Thank you very much for replying.
    - dragdrops represents: the dragable objects.
    - Targets obtaining the dropable objects by hitTestObject, then the dropable objects visible is turned to false, & the target visible turned to true.
    Dragable objects is a 12 elements all of them have an instance names: paper1....paper12.
    When I focused to the project I noticed that I forget to give the dragable objects an instance names!
    after making the instance names to them, a new error occures:
    E:\FL\ActionScript\Drag and Drop Project\Targets.as, Line 11
    1046: Type was not found or was not a compile-time constant: paper1.
    This error is continuing to paper2, paper3.....paper12 !
    Please download my project, I must deliver it to my college in 24/12. I will never forget your favor. thanks.
    https://www.dropbox.com/s/8mdg5w17vvryzso/Drag%20and%20Drop%20Project.rar | 715KB

  • Arithmetic Overflow error converting float to data type numeric

    Hi,
    Am facing strange issue,I have function which returns money datatype and assigning the return money value to float datatype in table.
    Error msg:
    Msg 8115, Level 16, State 6, Procedure GBCalcCatalogPriceNewV2, Line 204
    Arithmetic overflow error converting float to data type numeric.
    The statement has been terminated.
    Strange thing is the same stored procedure is working fine in production environment,but in the deveopment i see this error.Am scared if the same happens in the production environment.Please advice and advance
    thanks
    Regards
    RAj

    Strange thing is the same stored procedure is working fine in production environment,
    How could that be strange? This is an error that occurs depending on the data. Accidents that are waiting to happen will happen sooner or later.
    Then again, a development database may be more prone to such errors, because data that entered are completely out of whack with real life data. Still it is a warning sign. If you have some place where you convert data from float to numeric, you must consider
    the risk that the float value is outside the range for the numeric data type. How do you prevent that from happening? Maybe a CHECK constraint on the column? Of if the data origins from a money column, use a numeric data type with sufficient precision.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • How to solve this Error?? Error_2_Cannot implicitly convert type 'int' to 'int[]'_

    Hi,
    I created a structure. It contains 1& 2 diamensional arrays. Now I want to pass values to these arrays. But at that time I got the following error.
        Error 2 Cannot implicitly convert type 'int' to 'int[]' 
            publicstructtest
              [FieldOffset(160)]
             [MarshalAs(UnmanagedType.ByValArray,
    SizeConst = 3)]
            publicint[]
    DC;
               [FieldOffset(168)]
              [MarshalAs(UnmanagedType.ByValArray,
    SizeConst = 8)]
              publicfloat[]
    IN;
               [FieldOffset(176)]
              [MarshalAs(UnmanagedType.ByValArray,
    SizeConst = 8)]
            publicbyte[,]
    us;
    privatevoidbutton1_Click(objectsender,
    EventArgse)
    //int[] T_ADC = new int[3];
                array[0].DC =12
                array[0].IN[0] = 11;
                array[0].us[0, 0] = 1;

    @DAANNIII
    >>I wrote the code as follows
    array[0].DC[0]
    =12
    but after that I got an error that  " Object reference not set to an instance of an object".Why this type of error occurs??
    Still confused about how you define variable "array[0]".
    Based on your error information, because your DC is null. As I said before, DC is an int[]. You must assign an array to DC.
    int[] array = new int[] { 2, 43 };
    test s = new test();
    s.DC = array;
    s.DC[0] = 12;//It works fine
    Best regards,
    Kristin
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • SOS: XAML binding Error: Converter failed to convert value of type '...' to to type '...'

    Hi, I'm working on a small Windows store App project using C# + XAML, and encountered a really weird problem with data binding in XAML. The error message is:
    Error: Converter failed to convert value of type 'Neptune.MyMatch, SkyNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' to type
    'ProgressableBase'; BindingExpression: Path='' DataItem='Neptune.MyMatch, SkyNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'MyControls.ProgressableViewControl' (Name='root'); target property is 'Progressable'
    (type 'ProgressableBase').
    Error: Converter failed to convert value of type 'Neptune.MyMatch, SkyNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' to type
    'IMatchWrapper'; BindingExpression: Path='' DataItem='Neptune.MyMatch, SkyNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'MyControls.MatchScoreControl' (Name='root'); target property is 'Match' (type 'IMatchWrapper').
    the XAML code snippet involved is:
    <local:MatchScoreControl Match="{Binding Converter={StaticResource TestConverter}}" />
    here:
    1) The type of the 'Match' property of 'MatchScoreControl' is 'IMatchWrapper', the type of the DataContext is 'MyMatch';
    2) 'MyMatch' is derived from 'ProgressableBase' and implemented
    'IMatchWrapper';
    3) below is the definition of 'MatchScoreControl' and its dependency property 'Match':
    public sealed partial class MatchScoreControl : UserControl
    public IMatchWrapper Match
    get { return (IMatchWrapper)GetValue(MatchProperty); }
    set { SetValue(MatchProperty, value); }
    public static readonly DependencyProperty MatchProperty =
    DependencyProperty.Register("Match", typeof(IMatchWrapper), typeof(MatchScoreControl), new PropertyMetadata(null, OnMatchPropertyChanged));
    private static void OnMatchPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    // this line will never get called
    Debug.WriteLine(e.NewValue.GetType().FullName);
    } //more code...
    4) TestConverter is a dummy value converter(IValueConverter) which does nothing just to make sure the binding object and target type is as expected:
    public sealed class TestConverter : IValueConverter
    public object Convert(object value, Type targetType, object parameter, string language)
    if (targetType != typeof(IMatchWrapper))
    throw new NotImplementedException("Error: targetType is not IMatchWrapper.....");
    if (!(value is IMatchWrapper))
    throw new NotImplementedException("Error: value is not IMatchWrapper...");
    return (IMatchWrapper)value;
    public object ConvertBack(object value, Type targetType, object parameter, string language)
    throw new NotImplementedException();
    When I run the app, none of the two exceptions in the TestConverter.Convert() is thrown, which is right and as expected. But the out window keeps throwing the error message as above. This is pretty weird!
    I've tried adding a parameterless constructor to the class 'MyMatch', but it doesn't work.
    Any suggestion would be appreciated!

    Good to know you have the solution and thanks for sharing the experience.
    --James
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • CF9, no hotfix, VendorErrorCode 8114, cfprocresult error converting data type

    Hello, everyone.
    I've got an issue that really has me scratching my head.  Not sure where the issue lies, but I'll explain as best I can.
    Basically, I _think_ I'm being told that one of the fields in the recordset is not being converted.
    On one page, I make the following CFINVOKE:
    <cfinvoke component="components.header" method="content_single" returnvariable="resultset"
         dbdsn="#request.db_dsn#" dbusr="#request.db_username#" dbpwd="#request.db_password#">
         <cfinvokeargument name="table" value="#url.table#">
         <cfif isDefined("url.thisNav") AND len(trim(url.thisNav)) gt 0><cfinvokeargument name="pt" value="#trim(url.thisNav)#"></cfif>
         <cfif isDefined("url.id") AND val(url.id) gt 0><cfinvokeargument name="id" value="#val(url.id)#"></cfif>
         <cfif isDefined("url.section") AND len(trim(url.section)) gt 0><cfinvokeargument name="section" value="#trim(url.section)#"></cfif>
    </cfinvoke>
    Within a CFCOMPONENT in header.cfc, I have the following:
    <cffunction name="content_single" access="public">
             <cfargument name="dbdsn" required="yes">
             <cfargument name="dbusr" required="yes">
             <cfargument name="dbpwd" required="yes">
         <cfargument name="pt" required="no">
         <cfargument name="id" required="no">
         <cfargument name="section" required="no">
         <cfargument name="table" required="yes">
         <cfstoredproc procedure="SRT_sp_#lcase(url.table)#_contents_single" datasource="#dbdsn#"
                 username="#dbusr#" password="#dbpwd#"
                result="query_result">
            <cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" variable="@table" value="#lcase(table)#" maxlength="30">
    <cfif isDefined("pt") AND len(trim(pt)) gt 0><cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" variable="@pt" value="#ucase(pt)#" maxlength="12" null="no"></cfif>
    <cfif isDefined("id") AND val(id) gt 0><cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" variable="@id" value="#val(id)#" maxlength="10" null="no"></cfif>
    <cfif isDefined("section") AND len(trim(section)) gt 0><cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" variable="@section" value="#trim(replace(lcase(section),'_',' ','all'))#" maxlength="20" null="no"></cfif>
                <cfprocresult name="returned_result">
            </cfstoredproc>
              <cfreturn returned_result>
    </cffunction>
    Instead of the results I expect, I get the following error:
    Error  Executing Database Query.
    [Macromedia][SQLServer JDBC  Driver][SQLServer]Error converting data type varchar to int.
    The  error occurred in E:\xxxxxxxx\xxxxxxx\xxxx\components\header.cfc: line  17
    Called from E:\xxxxxxxx\xxxxxxx\xxxx\content_view.cfm:  line 24
    Called from E:\xxxxxxxx\xxxxxxx\xxxx\components\header.cfc: line 17
    Called  from E:\xxxxxxxx\xxxxxxx\xxxx\content_view.cfm: line  24
    15 :     <cfif isDefined("id") AND val(id) gt 0><cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" variable="@id" value="#val(id)#" maxlength="10" null="no"></cfif>
    16 :     <cfif isDefined("section") AND len(trim(section)) gt 0><cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" variable="@section" value="#trim(replace(lcase(section),'_',' ','all'))#" maxlength="20" null="no"></cfif>
    17 :             <cfprocresult name="returned_result">
    18 :         </cfstoredproc>
    19 :           <cfreturn returned_result>

    DBVARNAME is obsolete: don't use it.  You must pass-in the parameters positionally, not by name.  And, accordingly, you need to pass all of them in (with null values, if necessary).
    http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d 52.html:
    {quote}
    Changed the dbvarname attribute behavior: it is now ignored for all drivers
    {quote}
    Adam

  • Arithmetic overflow error converting expression to data type int

    Hi
        iam creating on sp for  the  database total size , used mb and  free size .  percentage free . 
     in  this purpose i was creating on sps, with in the sp iam was writing  one select statement . it  statement is    
    SELECT [Drivename] ,[DataSizedUsedMB],[DriveFreeSizeMB],DriveTotalSizeMB,
      CAST( (DriveFreeSizeMB/DriveTotalSizeMB)*  100 AS NUMERIC(5,2))
       As
      [PercentFree] ,[DateRecorded] FROM 
    SELECT SUBSTRING([physical_name],1,1) AS Drivename,
      CAST(((SUM(COALESCE(size,0)))*8)/1024 AS NUMERIC(20,2)) AS DriveTotalSizeMB,
      CAST(((SUM( COALESCE( FILEPROPERTY( [name],'SpaceUsed'),0)))*8)/1024 AS NUMERIC(20,2)) AS DataSizedUsedMB,
      CAST(((SUM(COALESCE(size,0))-SUM(COALESCE(fileproperty([name],'spaceused'),0)))*8/1024)AS NUMERIC(20,2)) AS DriveFreeSizeMB
      ,SYSDATETIME()  AS [DateRecorded]
    FROM sys.master_files 
    GROUP BY SUBSTRING([physical_name],1,1))  AS Data
      it was executive one  server with out error  but the same select  statement is writing antoher server iam geeting  belo error.
    "@ErrorDesc: Line 24 - Line 13- Arithmetic overflow error converting expression to data type int." 
      how to slove this issue..
    please help me...

    Change 8 to 8E0, to make it a float literal. The data type of
    SUM(COALESCE(size,0)))*8)
    is int, since all components are int, and it can easily overflow the size for an int. If you use 8E0, you get a float, and the entire expression will be float.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Arithmetic overflow error converting expression to data type int. Why in this case?

    Hi guys, it is Friday and I am really tired but..
    WITH CTE AS (
    SELECT LEN(CONS_ID) AS PROCA FROM TryCons)
    SELECT SUM(PROCA) FROM CTE
    Why I retrieve
    Arithmetic overflow error converting expression to data type int.
    Len should returns a number and so sum should work. It can be because I am trying to read  500 millions rows? But it wouldn't make sense.. 

    Len should returns a number and so sum should work. It can be because I am trying to read  500 millions rows? But it wouldn't make sense.. 
    If the average length of the field exceeds 4.29, that statement will explode. Since I don't know what's in CONS_ID, I can't say whether it makes sense or not. Although, I will have to say that from my uninitiated position, this seems like an
    accident to happen.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Cannot convert type class java.lang.String to class oracle.jbo.domain.Clob

    Cannot convert type class java.lang.String to class oracle.jbo.domain.ClobDomain.
    Using ADF Business Components I have a JSFF page fragment with an ADF form based on a table with has a column of type CLOB. The data is retrieved from the database and displayed correctly but when any field is changed and submitted the above error occurs. I have just used the drag and drop technique to create the ADF form with a submit button, am I missing a step?
    I am using the production release of Jdeveloper11G

    Reproduced and filed bug# 7487124
    The workaround is to add a custom converter class to your ViewController project like this
    package oow2008.view;
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
    import javax.faces.convert.ConverterException;
    import oracle.jbo.domain.ClobDomain;
    import oracle.jbo.domain.DataCreationException;
    public class ClobConverter implements Converter {
         public Object getAsObject(FacesContext facesContext,
                                   UIComponent uIComponent,
                                   String string) {
           try {
             return string != null ? new ClobDomain(string) : null;
           } catch (DataCreationException dce) {
             dce.setAppendCodes(false);
             FacesMessage fm =
               new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                "Invalid Clob Value",
                                dce.getMessage());
             throw new ConverterException(fm);
         public String getAsString(FacesContext facesContext,
                                   UIComponent uIComponent,
                                   Object object) {
           return object != null ?
                  object.toString() :
                  null;
    }then to register the converter in faces-config.xml like this
    <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee">
      <application>
        <default-render-kit-id>oracle.adf.rich</default-render-kit-id>
      </application>
      <converter>
        <converter-id>clobConverter</converter-id>
        <converter-class>oow2008.view.ClobConverter</converter-class>
      </converter>
    </faces-config>then reference this converter in the field for the ClobDomain value like this
              <af:inputText value="#{bindings.Description.inputValue}"
                            label="#{bindings.Description.hints.label}"
                            required="#{bindings.Description.hints.mandatory}"
                            columns="40"
                            maximumLength="#{bindings.Description.hints.precision}"
                            shortDesc="#{bindings.Description.hints.tooltip}"
                            wrap="soft" rows="10">
                <f:validator binding="#{bindings.Description.validator}"/>
                <f:converter converterId="clobConverter"/>
              </af:inputText>

  • Error #1034 Type Coercion fail with registerClassAlias and nested Vectors

    I'm attempting to use flash.net.registerClassAlias and ByteArray.writeObject in order to serialize/deserialize data with static type information.  It works as you'd expect in the general case but I've run into problems with some nested Vectors that I don't understand.  Hopefully someone can point out if I'm just missing something.
    For what I understand, we must register both the scalar types and a one-deep specification of a Vector for that scalar type in order to use nested Vectors.  For example:
                flash.net.registerClassAlias("TestStructureInner", TestStructureInner);
                flash.net.registerClassAlias("VectorTestInner", Vector.<TestStructureInner> as Class);
    This should allow us to read/write objects of type TestStructureInner, Vector.<TestStructureInner>, and Vector.<Vector.<TestStructureInner>> into ByteArrays.  And in general it seems to work.
    Attached though is a simplified test case that fails, however.  The first time we deserialize the data it works.  The subsequent time, however, we encounter the following runtime error #1034.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fcb9 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fbc9 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fdd1 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fce1 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fbf1 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fec1 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fad9 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304fa61 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304f9e9 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
        TypeError: Error #1034: Type Coercion failed: cannot convert __AS3__.vec::Vector.<Object>@304f971 to __AS3__.vec.Vector.<__AS3__.vec::Vector.<Test0.as$30::TestStructureInner>>.
    Re-registering the class aliases again via flash.net.registerClassAlias works in this test case but isn't 100% for our actual application (I'm reticent to even mention it but it seems relevant).  Is there a step I'm missing here?  Any light shed would be appreciated.
    // mxmlc -debug Test0.as
    package
        import Base64; // http://code.google.com/p/jpauclair-blog/source/browse/trunk/Experiment/Base64/src/Base64.a s
        import flash.net.registerClassAlias;
        import flash.events.Event;
        import flash.utils.ByteArray;
        import flash.display.Sprite;
        import flash.display.Stage;
        import flash.system.System;
        public class Test0 extends Sprite
            static private const OPERATION_SERIALIZE:uint = 0;
            static private const OPERATION_DESERIALIZE_AND_FAIL:uint = 1;
            static private const OPERATION_DESERIALIZE_AND_SUCCEED:uint = 2;
            static private var staticStage:Stage;
            private var bar:Vector.<TestStructure>;
    * common functions
            static private function registerClassAliases():void
                flash.net.registerClassAlias("TestStructureInner", TestStructureInner);
                flash.net.registerClassAlias("VectorTestInner", Vector.<TestStructureInner> as Class);
                flash.net.registerClassAlias("TestStructure", TestStructure);
            static public function staticDeserialize():Object
                var byteArray:ByteArray = Base64.decode("EBUAG1Rlc3RTdHJ1Y3R1cmUKEwAHZm9vEAEAH1ZlY3RvclRlc3RJbm5lcgoBEAEABAoBEAEABA oBEAEABAoBEAEABAoBEAEABAoBEAEABAoBEAEABAoBEAEABAoBEAEABA==");
                byteArray.position = 0;
                return byteArray.readObject();
            public function Test0():void
                registerClassAliases();
                // Switching operation between the constants demonstrates failure/success in a couple of different ways.
                // SERIALIZE is just used to prepare the base64 string for subsequent tests.
                var operation:int = OPERATION_SERIALIZE_AND_FAIL;
                if (operation == OPERATION_SERIALIZE)
                    trace("Serializing");
                    // outputs base64 string for subsequent tests
                    serialize();
                else if (operation == OPERATION_DESERIALIZE_AND_FAIL)
                    trace("Fail case");
                    // perform successful one deserialization, then one failing one.
                    deserializeOnceThenFail();
                else if (operation == OPERATION_DESERIALIZE_AND_SUCCEED)
                    trace("Success via re-registration");
                    // perform successful one deserialization, then another successful one.
                    deserializeOnceThenSucceed();
    * serialize
            // outputs base64 string we use for subsequent tests.
            private function serialize():void
                var baz:Vector.<TestStructure> = new Vector.<TestStructure>;
                for (var i:int=0; i<10; ++i)
                    baz.push(new TestStructure);
                var byteArray:ByteArray = new ByteArray;
                byteArray.writeObject(baz);
                trace(Base64.encode(byteArray));
    * deserializeOnceThenFail
            // perform successful one deserialization, then one failing one.
            public function deserializeOnceThenFail():void
                // save stage
                staticStage = stage;
                // the first deserialize will proceed without error.
                staticDeserialize();
                trace("Successful deserialize");
                // add an event listener in order to invoke error on subsequent frame
                stage.addEventListener(Event.ENTER_FRAME, doEnterFrameOnceThenFail);
            // remove event listener and invoke again.
            static private function doEnterFrameOnceThenFail(e:Event):void
                staticStage.removeEventListener(Event.ENTER_FRAME, doEnterFrameOnceThenFail);
                staticDeserialize();
                trace("unsuccessful deserialize2");
    * deserializeOnceThenSucceed
    * Here, we re-call flash.net.registerClassAlias on all our class types when running.
            // perform successful one deserialization, then one failing one.
            public function deserializeOnceThenSucceed():void
                // save stage
                staticStage = stage;
                // the first deserialize will proceed without error.
                staticDeserialize();
                trace("Successful deserialize");
                // add an event listener in order to invoke error on subsequent frame
                stage.addEventListener(Event.ENTER_FRAME, doEnterFrameOnceThenSucceed);
            // remove event listener and invoke again.
            static private function doEnterFrameOnceThenSucceed(e:Event):void
                staticStage.removeEventListener(Event.ENTER_FRAME, doEnterFrameOnceThenSucceed);
                registerClassAliases();
                staticDeserialize();
                trace("successful deserialize2");
    internal class TestStructureInner
              public var value:int;
    internal class TestStructure
              public var foo:Vector.<Vector.<TestStructureInner>> = new Vector.<Vector.<TestStructureInner>>;

    The error would imply that ImageAssetEvent does not inherit
    DisplayEvent. Either modify the inheritance chain or listen for a
    basic Event object (flash.events.Event) and cast inside the
    function.

  • Error Converting Currency --  Load from SAP ECC / R/3  to BW / BI

    Hi,
    I have a custom extractor pulling data from ECC.
    However, I am getting the following error.
    'Error Converting Currency from USD4 to  on 8/27/2008'
    RSA3 works fine. PSA load fails and the above message can be seen in the application log in ECC.
    Any ideas?
    Points will be assigned.
    Thanks,
    Edited by: Rajen SAP BI on Aug 29, 2008 2:23 AM

    I believe in the transfer rule info object 0currency should be assigned with field from transfer structure which contains Currency . Once the assignment is done , delete data from info cube and reload the data and this time it should give
    corresponding currency along with Amount.
    Once you are able to see the currencies along with amount second step would be to create Currency translation ( RRC1 ) Put description ( Fixed Currency USD )
    Tab page exchange rate : Rate type M
    Source currency : From Data record
    Target currency : Fixed ( USD )
    Time ref. Fixed time ref. (Current datE) ( varies per scenario )
    Save it.
    Or
    Use this function module for converting currency from one format to another format...
    CONVERT_TO_FOREIGN_CURRENCY...

Maybe you are looking for