ORA-00907缺少右括号错误+;JAVA
我在sql中有以下过程:ORA-00907缺少右括号错误+;JAVA,java,sql,oracle,Java,Sql,Oracle,我在sql中有以下过程: PROCEDURE classificacao(csr OUT SYS_REFCURSOR, campeonato number, ttime VARCHAR2) AS sql_text VARCHAR2(600); BEGIN sql_text := 'SELECT ESTPRAT7.totaljogos('''||campeonato||''', '''||ttime||'''), ESTPRAT7.totalvitorias('''||campeo
PROCEDURE classificacao(csr OUT SYS_REFCURSOR, campeonato number, ttime VARCHAR2) AS
sql_text VARCHAR2(600);
BEGIN
sql_text := 'SELECT ESTPRAT7.totaljogos('''||campeonato||''', '''||ttime||'''), ESTPRAT7.totalvitorias('''||campeonato||''', '''||ttime||'''), ESTPRAT7.totalempates('''||campeonato||''', '''||ttime||
'''), ESTPRAT7.totalderrotas('''||campeonato||''', '''||ttime||'''), ESTPRAT7.totalpontos('''||campeonato||''', '''||ttime||'''), ESTPRAT7.aproveitamento('''||campeonato||''', '''||ttime||''') FROM DUAL';
dbms_output.put_line(sql_text);
OPEN csr FOR sql_text;
END classificacao;
它执行正确。但当我试图在JAVA程序中执行时,会不断出现此错误
以下是java代码:
OracleCallableStatement pesquisa =
(OracleCallableStatement) connection.prepareCall("{ call EstPrat7.classificacao( ?, "+n+", ? )}");
pesquisa.registerOutParameter(1, OracleTypes.CURSOR);
pesquisa.setString(2, time);
pesquisa.execute();
我遗漏了什么吗?尝试打印整个sql调用。我在这里没有看到任何错误,它可能是一个错误的参数,具有意外的格式/带有意外的符号 试一试
如果这没有提供sql输出(如果我没记错oracle驱动程序没有),您可以使用查看sql输出(或查看oracle查询历史记录)。我犯的错误是查询字符串的格式为“columnnameAND”,而不是“columnname and”,您的回答帮助了我@schoen
System.out.println(pesquisa );