Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 jdbc4-如何插入货币类型?_Sql Server 2005_Jdbc_Database Connection - Fatal编程技术网

Sql server 2005 jdbc4-如何插入货币类型?

Sql server 2005 jdbc4-如何插入货币类型?,sql-server-2005,jdbc,database-connection,Sql Server 2005,Jdbc,Database Connection,我面临一个有趣的问题,因为。。。我有MSSQL(2005)表A,其中包含货币类型列;问题是,我想用Java代码中的T-SQL过程调用向该列插入值,但我不太确定应该使用哪种Java类型为该列准备语句来插入值? 我找不到任何例子,所以也许你可以分享一些有用的片段 任何有用的评论都很受欢迎您能不能只用一个双精度(或者浮点型,但可能不能)?另外,在数据库中使用金钱可以获得什么?我发现DECIMAL更加可靠和灵活-对于一些背景,请参阅和(很抱歉缺少图像)。好的。。。 我能弄明白的是,不要直接使用money

我面临一个有趣的问题,因为。。。我有MSSQL(2005)表A,其中包含货币类型列;问题是,我想用Java代码中的T-SQL过程调用向该列插入值,但我不太确定应该使用哪种Java类型为该列准备语句来插入值? 我找不到任何例子,所以也许你可以分享一些有用的片段


任何有用的评论都很受欢迎

您能不能只用一个
双精度
(或者
浮点型
,但可能不能)?另外,在数据库中使用
金钱
可以获得什么?我发现
DECIMAL
更加可靠和灵活-对于一些背景,请参阅和(很抱歉缺少图像)。

好的。。。 我能弄明白的是,不要直接使用money类型,因为jdbc4连接器prepareStatement不包含setMoney等,所以我想与大家分享一些漫游。。。当然,这不是最终的编码方式,但仍然

所以

  • A) Money类从获取字符串为$00.00 显示美元方法

  • B) 使用类似以下代码创建mssql过程

    create procedure aschema.test @a varchar(10)
    AS
    BEGIN
    
    DECLARE @b money    
    SET @b=CAST @a AS MONEY
    
    --todo: insert next...
    
    END;
    
  • C) 因此proc调用非常简单,如下所示

    Money m=new Money("12.99");
    
    callableStatement = (SQLServerCallableStatement) connection.prepareCall(
                            "{call "+
                            DATABASE_NAME+
                            "."+
                            SCHEMA_NAME+
                            ".test(?)}");
    callableStatement.setString(1,m.displayAsDollarsCorrectly());
    callableStatement.executeUpdate();
    
    //

正如我刚才所说的,这不是最终的代码决定,而是一个临时概念,如果您真的需要在旧的mssql数据库中使用money-type,它可能也会很有帮助。至少对我来说,这是一个临时的回答:)

我希望它能对某人有所帮助:)


祝你好运。。。货币类型是00.00类型的常用类型,所以我在MSSQL数据库中使用它。。。我听说Java有money类型,所以它会有帮助吗?我不确定Java中是否有反映
money
的基类型-至少我没有看到这里列出的任何这样的东西:。无论如何,要存储
00.00
MONEY
不是“通常的事情”-
DECIMAL
是。你读过我指出的文章了吗?正如我所看到的,没有像money这样的原始类型,但是有一个类money包含BigDecimal,所以它可能会有帮助…最大的问题是我不知道如何在MS jdbc4驱动程序及其PrepareStatement中使用“money”对象。。。那么我应该用什么来“设置”呢?类似setObject(int,Money)的东西?因为我找不到“setMoney(…)”方法there@user592704为什么需要在数据库中使用资金?上面的链接当然指出了一些问题,让我想重新访问一些使用金钱的旧数据库。。。