【问题标题】:Declare an SQL variable in Java在 Java 中声明一个 SQL 变量
【发布时间】:2020-06-14 03:31:07
【问题描述】:

我已将 Java 连接到 SSMS,并且可以使用以下方式从服务器调用数据没有问题:

String cell = "SELECT [Close] FROM ExcelData WHERE id_num = 3";
Statement st4 = con.createStatement();
ResultSet rs4 = st4.executeQuery(cell);

while (rs4.next())
{
    Float close = rs4.getFloat("close");
    System.out.format("%s\n", close);
}

当我将"SELECT [Close] FROM ExcelData WHERE id_num = 3" 替换为"SELECT @SMA" 时,我得到了很多质疑“必须声明标量变量@SMA

我不知道该怎么做。

【问题讨论】:

  • 为什么要做SELECT @SMA?你知道这意味着什么吗?
  • 当然,我在 SSMS 中创建了几个变量,@SMA 就是其中之一,我想将它们从 SSMS 调用到 Java 中。不确定这是否能回答您的问题?
  • 一个变量是特定于会话的,所以你不能在 SSMS 中定义一个变量,然后在 Java 中检索它。
  • “我在 SSMS 中创建了几个变量” 然后使用相同的语法从 Java 创建相同的变量,例如String cell = "DECLARE @SMA int; SET @SMA = 42; SELECT @SMA",你会得到一个结果集,其中一行一列的值为 42。

标签: java sql sql-server jdbc scalar


【解决方案1】:

回答我自己的问题以帮助可能需要了解此信息的其他人... 这是不可能的。解决方法是在 SQL 中创建一个表并将变量插入到表中。

DROP TABLE IF EXISTS SMA
CREATE TABLE SMA  (
SMA_Price DECIMAL (6,5),
)
INSERT INTO SMA VALUES (@SMA);

SELECT * FROM SMA;

然后您可以从 Java 中调用“SELECT * FROM SMA”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2010-10-30
    相关资源
    最近更新 更多