Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Sql和Oracle出现Netbeans错误_Java_Sql_Netbeans - Fatal编程技术网

Java Sql和Oracle出现Netbeans错误

Java Sql和Oracle出现Netbeans错误,java,sql,netbeans,Java,Sql,Netbeans,您好,我的应用程序中有此错误消息:“res”在当前上下文中不是已知变量。此外,我也有此错误消息“ORA-00911:无效字符” 这是代码,出于安全原因,IP和实例名称已更改为XXXX: package javaapplication6; import java.io.IOException; import java.io.File; import java.sql.DriverManager; import java.sql.Connection; import java.sql.Prepar

您好,我的应用程序中有此错误消息:“res”在当前上下文中不是已知变量。此外,我也有此错误消息“ORA-00911:无效字符”

这是代码,出于安全原因,IP和实例名称已更改为XXXX:

package javaapplication6;

import java.io.IOException;
import java.io.File;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

public class JavaApplication6 {

    private static final String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
    private static final String DB_CONNECTION = "jdbc:oracle:thin:@XXX.XXX.XXX.XXX:1521:XXXX";
    private static final String DB_USER = "system";
    private static final String DB_PASSWORD = "manager";

    public static void main(String[] argv) {

        try {
            WriteExcel();
            } catch (SQLException e) 
                       {
            System.out.println(e.getMessage());
               }
    }

    @SuppressWarnings("empty-statement")
    public static void WriteExcel() throws SQLException {
    {
        try {
            Connection dbConnection = null;
            PreparedStatement preparedStatement = null;
            ResultSet res = null;

            File file = new File("c:\\output.xls");

            int row=0;
            //formato fuente para el contenido contenido
            WritableFont wf = new WritableFont( WritableFont.ARIAL, 12, WritableFont.NO_BOLD );
            WritableCellFormat cf = new WritableCellFormat(wf);

            //Interfaz para una hoja de cálculo
            WritableSheet excelSheet = null;
            WritableWorkbook workbook = null;

            //Establece la configuración regional para generar la hoja de cálculo
            WorkbookSettings wbSettings = new WorkbookSettings();
            wbSettings.setLocale(new Locale("en", "EN"));

            try {
                workbook = Workbook.createWorkbook( file, wbSettings );
                //hoja con nombre de la tabla
                workbook.createSheet( "persona", 0 );
                excelSheet = workbook.getSheet(0);
                System.out.println(  "creando hoja excel.....Listo"  );
            } catch (IOException ex) {
                System.err.println( ex.getMessage() );
            }

            //Consulta SQL
            String sql = "SELECT\n" +
                    "  cast (TICKET.VAL_NUM as varchar(18)) as TICKET,\n" +
                    "  TICKET.TCK_MNT/100 as MONTO,\n" +
                    "  TICKET.CREDAT as FECHA,\n" +
                    "  BCLIENT.ID_CLI as ID_CLIENTE,\n" +
                    "  BCLIENT.PRENOM || ' ' || GALAXIS.BCLIENT.NOM as NOMBRE,\n" +
                    "  FCONSOM.COD_UTILIS as REGISTRO,\n" +
                    "  TCKSTS.LIB_STS as ESTADO,\n" +
                    "  FTYPCLI.LIB_LONG2 as CATEGORIA\n" +
                    "FROM\n" +
                    "  BCLIENT,\n" +
                    "  FCONSOM,\n" +
                    "  TCKSTS@DB_LINK,\n" +
                    "  FTYPCLI,\n" +
                    "  TCKTYP@DB_LINK,\n" +
                    "  QPCONSTCK@DB_LINK,\n" +
                    "  TICKET@DB_LINK\n" +
                    "WHERE\n" +
                    "  ( TCKSTS.ID_STS = TICKET.ID_STS  )\n" +
                    "  AND  ( TCKTYP.ID_TCKTYP = TICKET.ID_TCKTYP  )\n" +
                    "  AND  ( QPCONSTCK.ID_TCK(+)=cast(TICKET.VAL_NUM as varchar(18))   )\n" +
                    "  AND  ( FCONSOM.ID_CONSO(+)=QPCONSTCK.ID_CONSO  )\n" +
                    "  AND  ( BCLIENT.ID_CLI(+)=FCONSOM.ID_CLI  )\n" +
                    "  AND  ( BCLIENT.COD_TYPCLI=FTYPCLI.COD_TYPCLI  )\n" +
                    "  AND  (\n" +
                    "  TICKET.CREDAT  BETWEEN  to_date('2014-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND to_date('2014-03-28 23:59:59', 'yyyy-mm-dd hh24:mi:ss')\n" +
                    "  AND  TCKTYP.LIB_TCKTYP  =  'RESTRICTED PROMOTIONAL'\n" +
                    "  );";

            dbConnection = getDBConnection();
            PreparedStatement pstm = dbConnection.prepareStatement(sql);

            //ResultSet res;
            res = pstm.executeQuery();

            System.out.println(  "obteniendo registros.....Listo"  );
            try {
                while(res.next())
            {
                Label ticket;
                ticket = new Label( 0 , row, res.getString( "TICKET" ) , cf );
                Label monto;
                monto = new Label( 1 , row, res.getString("MONTO" ) , cf );
                Label fecha;
                fecha = new Label( 2 , row, res.getString( "FECHA" ) , cf );
                Label id;
                id = new Label( 3 , row, res.getString( "ID" ) , cf );
                Label nombre;
                nombre = new Label( 4 , row, res.getString( "NOMBRE" )  , cf );
                Label registro;
                registro = new Label( 4 , row, res.getString( "REGISTRO" )  , cf );
                Label estado;
                estado = new Label( 4 , row, res.getString( "ESTADO" )  , cf );
                Label categoria;
                categoria = new Label( 4 , row, res.getString( "CATEGORIA" )  , cf );
                row ++;
                try {
                    excelSheet.addCell( ticket );
                    excelSheet.addCell( monto );
                    excelSheet.addCell( fecha );
                    excelSheet.addCell( id );
                    excelSheet.addCell( nombre );
                    excelSheet.addCell( registro );
                    excelSheet.addCell( estado );
                    excelSheet.addCell( categoria );

                } catch (WriteException ex) {
                    System.err.println(  ex.getMessage() );
                }
            }

            } catch (SQLException e) {

            System.out.println(e.getMessage());

        } finally {

            if (preparedStatement != null) {
                preparedStatement.close();
            }

            if (dbConnection != null) {
                dbConnection.close();
            }

        }

            //Escribe el archivo excel en disco
            workbook.write();
            try {
                workbook.close();
            } catch (WriteException ex) {
                Logger.getLogger(JavaApplication6.class.getName()).log(Level.SEVERE, null, ex);
            }
            System.out.println(  "Escribiendo en disco....Listo"  );

            System.out.println(  "Proceso completado...."  );
        } catch (IOException ex) {
                Logger.getLogger(JavaApplication6.class.getName()).log( Level.SEVERE, null, ex);
        }
    }            
}     

private static Connection getDBConnection() {
        Connection dbConnection = null;
        try {
            Class.forName(DB_DRIVER);
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        }
        try {
            dbConnection = DriverManager.getConnection(DB_CONNECTION, DB_USER,DB_PASSWORD);
            return dbConnection;
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return dbConnection;
    }
}

您能指出哪些行有这些错误吗?您可能想去掉SQL结尾的分号-这应该可以处理Oracle错误。还有其他错误。。。这是否只是NetBeans调试器在定义
res
之前报告的情况?如果是这样,那是完全正常的,不是错误。我只是在netbeans中使用调试命令来查看错误并显示我以前发布的消息。当我在调试选项中进行跟踪时,调试不会访问while(res.next())行。我不知道为什么。