Java 在preparedstatement中调用参数化函数

Java 在preparedstatement中调用参数化函数,java,jdbc,prepared-statement,Java,Jdbc,Prepared Statement,我试图使用jdbc preparedstatement将数据插入sql server 2008数据库。我遇到的困难是,我有可能更改的时间点ID,我需要根据insert的其他元素查找常量ID。我已经编写了一个存储函数来执行查找,myIDLookup(x,y) 我试着这样写一份准备好的声明: INSERT INTO myTable (id,idElement1,idElement2,otherItem) VALUES (myIDLookup(?,?),?,?,?) 我看到过成功使用内置函数(如n

我试图使用jdbc preparedstatement将数据插入sql server 2008数据库。我遇到的困难是,我有可能更改的时间点ID,我需要根据insert的其他元素查找常量ID。我已经编写了一个存储函数来执行查找,myIDLookup(x,y)

我试着这样写一份准备好的声明:

INSERT INTO myTable (id,idElement1,idElement2,otherItem) 
VALUES (myIDLookup(?,?),?,?,?)
我看到过成功使用内置函数(如now())的示例,但没有看到在preparedstatement中使用参数化函数的任何内容。这可能吗


谢谢

我认为正确的方法是编写一个存储过程来插入行,该行接受x和y,并通过调用myIDLookup ad生成id,然后再插入该行。模板可能类似于:

stored proc insertRow (x, y, z)
{
   id = myIDLookup(x , y)
   insert into table values (id, x , y, z)
}

您是否尝试创建和调用这样的PreparedStation?是的,它似乎没有在函数调用中看到这两个参数。所以它丢弃了我所有其他参数的索引,导致了一些解析错误。据我所知,这应该是可行的。你有什么错误?