ORA-00907缺少右括号错误+;JAVA

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

我在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('''||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 );