gpt4 book ai didi

java - 将 Java 中的字符串转换为 SQL 中的 VARCHAR

转载 作者:搜寻专家 更新时间:2023-10-30 20:04:24 25 4
gpt4 key购买 nike

我正在尝试用 Java 编写 PL/SQL。我想将一个参数作为字符串传递,但在 SQL 过程中它是一个 VARCHAR(140)。但是,当我运行该程序时出现错误,我不明白为什么?

这是我的 SQL 过程:

CREATE OR REPLACE PROCEDURE task1
(input_tweet_id IN integer, input_user_id IN integer, input_time IN timestamp, input_tweet IN varchar(140))
is
begin
INSERT INTO tweet(tweetid, userid, publishtime, tweet)
VALUES (input_tweet_id,input_user_id,input_time,input_tweet);
END;

Java 调用:

    int in_tweet_id = 0;
int in_user_id = 0;
Timestamp in_time =null;
String in_tweet ="";

Connection conn = DriverManager.getConnection (connStr, uname, passwd);
CallableStatement cstmt = conn.prepareCall("{? = call task1(?, ?)}");
// cstmt.registerOutParameter (1, oracle.jdbc.OracleTypes.CURSOR);
cstmt.setInt(1, in_tweet_id);
cstmt.setInt(2, in_user_id);
cstmt.setTimestamp(3,in_time);
cstmt.setString(4,in_tweet);

错误:

 at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:269)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:490)
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5013)
at oracle.jdbc.driver.OracleCallableStatement.setString(OracleCallableStatement.java:4094)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:246)
at hw4.execute_task1(hw4.java:247)
at hw4.main(hw4.java:101)

最佳答案

您正在尝试设置第 3 个和第 4 个 CallableStatement 参数,其中只有 2 个已定义

CallableStatement cstmt = conn.prepareCall("{call task1(?, ?, ?, ?)}");

关于java - 将 Java 中的字符串转换为 SQL 中的 VARCHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com