jdbc basic operation,how to insert a long raw data

原创 2006年05月31日 13:47:00

红色标志处非常重要!!!

package packCGDataServer;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.io.*;
import ShapeFile.*;
import DbfFile.*;
import ShapeFile.ShapePoint;

public class DBoper {
 public Connection m_conn;

 public String m_userName;

 public String m_passWord;

 public String m_dataSource;

 public String m_serviceName;

 public String m_portName;

 public boolean initConnection() {
  try {

   DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
   java.util.Properties info = new java.util.Properties();
   info.put("user", m_userName);
   info.put("password", m_passWord);
   // specify the connection object
   m_conn = DriverManager.getConnection("jdbc:oracle:thin:@"
     + m_dataSource + ":" + m_portName + ":" + m_serviceName
     + "", info);
   m_conn.setAutoCommit(false);

   return true;
  } catch (Exception e) {
   System.out.print(e.getMessage());
   return false;
  }
 }

 public boolean executeSQL(String exeStr) {

  try {
   if (m_conn.isClosed() == false) {
    try {
     Statement stmt = m_conn.createStatement();
     stmt.execute(exeStr);
     return true;// jdgStr +" succeeded";
    } catch (Exception e) {
     return false;// jdgStr + " failed";
    }

   } else {
    return false;// jdgStr + " failed";
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return false;

 }

 public boolean addPolygonLayerRecords(ShapefileShape[] ccObJ3,
   String layerID) {
  String tabF = CConfigValue.TABF + layerID;
  try {
   if (m_conn.isClosed() == false) {
    try {
     String content;
     for (int i = 0; i < ccObJ3.length; i++) {
      ShapePolygon ccPolygon = (ShapePolygon) ccObJ3[i];
      content = ccObJ3[i].toString();
      byte[] pts = content.getBytes();
      InputStreamReader bais = new InputStreamReader(
        new ByteArrayInputStream(pts));
      PreparedStatement pstmt = m_conn
        .prepareStatement("insert into "
          + tabF
          + " (FID,FIDTYPE,NUMOFCOUNTS,"
          + "MINX,MINY,MAXX,MAXY,AREA,LEN,POINTS,"
          + "CSRID,MSRID,BDELETED,BRELATEDID,BLOCK,PROCID) values (?,?,?,?,?,?,?,?,?,utl_raw.cast_to_raw(?),?,?,?,?,?,?)");
      long v_FID = i + 1;
      long v_FIDTYPE = 1;
      int v_NUMOFCOUNTS = ccPolygon.getNumPoints();
      double v_MINX = ccPolygon.getBounds()[0];
      double v_MINY = ccPolygon.getBounds()[1];
      double v_MAXX = ccPolygon.getBounds()[2];
      double v_MAXY = ccPolygon.getBounds()[3];
      double v_AREA = 0;
      double v_LEN = 0;
      // POINTS
      String v_CSRID = "1";
      String v_MSRID = "1";
      String v_BDELETED = "0";
      String v_BRELATEDID = "0";
      String v_BLOCK = "0";
      String v_PROCID = "0";

      pstmt.setString(1, String.valueOf(v_FID));
      pstmt.setString(2, String.valueOf(v_FIDTYPE));
      pstmt.setString(3, String.valueOf(v_NUMOFCOUNTS));
      pstmt.setString(4, String.valueOf(v_MINX));
      pstmt.setString(5, String.valueOf(v_MINY));
      pstmt.setString(6, String.valueOf(v_MAXX));
      pstmt.setString(7, String.valueOf(v_MAXY));
      pstmt.setString(8, String.valueOf(v_AREA));
      pstmt.setString(9, String.valueOf(v_LEN));
      pstmt.setCharacterStream(10, bais, pts.length);
      pstmt.setString(11, v_CSRID);
      pstmt.setString(12, v_MSRID);
      pstmt.setString(13, v_BDELETED);
      pstmt.setString(14, v_BRELATEDID);
      pstmt.setString(15, v_BLOCK);
      pstmt.setString(16, v_PROCID);

      // pstmt.setString(1, "kitt");
      // pstmt.setCharacterStream(2, bais, pts.length);
      pstmt.execute();
      pstmt.close();
     }
     m_conn.commit();
     return true;// jdgStr +" succeeded";
    } catch (Exception e) {
     return false;// jdgStr + " failed";
    }

   } else {
    return false;// jdgStr + " failed";
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  return false;
 }

JDBC读取Oracle LONG RAW类型字段

Java代码如下: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep...
  • restraint
  • restraint
  • 2012年01月10日 11:17
  • 5194

操作clob 大字段的can bind a LONG value only for insert into a LONG column 异常处理

 开发架构:spring 2.0 DAO层:ibatis 2.3 DB: oracle 10g需要在spring的application.xml的关于clob的配置。如下源码:============...
  • mbjava
  • mbjava
  • 2009年05月27日 17:25
  • 1248

Oracle 内置数据类型 -- LONG 和 RAW

-- Start -- 待续 --更多参见:Oracle SQL 精萃 -- 声明:转载请注明出处 -- Last edited on 2015-01-01 -- Created by...
  • shangboerds
  • shangboerds
  • 2015年01月01日 14:45
  • 2294

数据库二进制字段读取问题(long raw)

项目中用到了long raw 类型字段用于存放报表文件内容,一直相安无事。有一天需要修改设计,增加了一个跟报表组关联,问题来了,读取long raw字段总是提是SQLException“流已关闭”,经...
  • wenchangren
  • wenchangren
  • 2006年09月27日 16:36
  • 3490

Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LO

Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LO...
  • zb0567
  • zb0567
  • 2012年08月28日 14:00
  • 2369

ORA-00910 to ORA-01497

ORA-00910: specified length too long for its datatype Cause: for datatypes CHAR and RAW, the leng...
  • liangyike
  • liangyike
  • 2012年04月09日 11:43
  • 3926

解决 ORA-01461: can bind a LONG value only for insert into a LONG column

我用的环境是ssh+oracle11.0 出现这错误很有可能是你驱动的问题    因为之前那项目是用的mysql数据库,所以用ojdbc14这驱动没一点问题,但是后来我改成oracle 后...
  • beyond667
  • beyond667
  • 2012年04月23日 09:00
  • 6835

proc中插入VARCHAR2字段报ORA-01461: can bind a LONG value only for insert into a LONG column

最近做一个天信达货运接口的项目,碰到这么个诡异的问题。 背景: 使用proc写的应用,向数据库插入记录。表中有三个VARCHAR2(4000)类型的字段。注:Oracle 9i的库。 ...
  • bisal
  • bisal
  • 2014年09月26日 15:07
  • 11126

bcp 错误导入问题解决

sybase bcp 错误大全 Sybase BCP 错误总结一. Bcp 错误ct_connect(): network packet layer: internal net library err...
  • y541397839
  • y541397839
  • 2010年05月13日 11:25
  • 4218

long和long raw的数据类型

long和long raw的数据类型 1 long和long raw以及raw都可以存储大文件对象 2 long 用于存储最多2GB的字符数据 3 long raw用于存储最多2GB的二进制数据...
  • zhou920786312
  • zhou920786312
  • 2017年06月03日 17:42
  • 390
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jdbc basic operation,how to insert a long raw data
举报原因:
原因补充:

(最多只允许输入30个字)