racle的STRUCT和VARRAY的讀寫方法

2021-06-05 04:31:21 字數 4158 閱讀 6594

巧巧電腦網路

2010-02-25 qqread 佚名   

收藏此文 

大中小

分享到qq空間

人人網開心網

豆瓣更多

本文給出了讀寫oracle的特殊資料型別struct和varray的操作方法。首先,建立型別 create type struct_test as object(s varchar(30), i number); create type number_varray as varray(10) of number(12, 2); 然後。

本文給出了讀寫oracle的特殊資料型別struct和varray的操作方法

首先,建立型別

create type struct_test as object(s varchar(30), i number);

create type number_varray as varray(10) of number(12, 2);

然後,建立表

create table test(i number, obj struct_test);

reate table varray_table(col_number_array number_varray)

然後,插入資料

//插入struct資料

object values = new object;

oracle.sql.structdescriptor structdesc =oracle.sql.structdescriptor.createdescriptor(」struct_test」, cn);

oracle.sql.struct oraclestruct = new oracle.sql.struct(structdesc, cn, values);

// create a prepared statement for insertion into test

preparedstatement ps = connection.preparestatement(」insert into test values(?,?)」);

// set the values to insert

ps.setint(1, 123);

ps.setobject(2, oraclestruct);

// insert the new row

ps.execute();

//插入varray資料

// create an oracle.sql.array object to hold the values

oracle.sql.arraydescriptor arraydesc = oracle.sql.arraydescriptor.createdescriptor(」number_varray」, connection);

int arrayvalues = ;

oracle.sql.array array = new oracle.sql.array(arraydesc, cn, arrayvalues);

// create a prepared statement for insertion into varray_table

preparedstatement ps = cn.preparestatement(」insert into varray_table values(?)」);

// set the values to insert

((oracle.jdbc.driver.oraclepreparedstatement)ps).setarray(1, array);

// insert the new row

ps.execute();

最後,讀取資料

//讀取struct資料

resultset resultset = stmt.executequery(」select * from test」);

while (resultset.next())

catch (sqlexception e)

stmt.execute ("create type string_varray as varray(10) of varchar2(100)");

stmt.execute ("create table sample_varray_table (acol string_varray)");

//insert using sql

stmt.execute ("insert into sample_varray_table values (string_varray('test1', 'test2'))");

resultset rs = stmt.executequery("select acol from sample_varray_table");

printresultset (rs);

//insert using arraydescriptor

// create a new array object

string arrayelements = ;

arraydescriptor desc = arraydescriptor.createdescriptor

("string_varray", conn);

array newarray = new array(desc, conn, arrayelements);

preparedstatement ps =

conn.preparestatement ("insert into sample_varray_table values (?)");

((oraclepreparedstatement)ps).setarray (1, newarray);

ps.execute ();

rs = stmt.executequery("select acol from sample_varray_table");

printresultset (rs);

// close all the resources

rs.close();

ps.close();

stmt.close();

conn.close();

}public static void printresultset (resultset rs)

throws sqlexception

public static void sendstruct()

...;

object so2 = ...;

oraclecallablestatement callstatement = null;

class.forname("oracle.jdbc.driver.oracledriver");

dbconn = drivermanager.getconnection("jdbc:oracle:thin:@servername:port:ora", "username", "password");

structdescriptor st = new structdescriptor("department_type",dbconn);

struct s1 = new struct(st,dbconn,so1);

struct s2 = new struct(st,dbconn,so2);

struct deptarray = ...;

arraydescriptor arraydept = arraydescriptor.createdescriptor("dept_array", dbconn);

array deptarrayobject = new array(arraydept, dbconn, deptarray);

callstatement = (oraclecallablestatement)dbconn.preparecall("");

((oraclecallablestatement)callstatement).setarray(1, deptarrayobject);

callstatement.executeupdate();

dbconn.commit();

callstatement.close();

} catch(exception e)...

}}

va和tn玩遊戲哪個好 va和tn哪個傷眼睛

va面板 tn面板區別 1 tn面板 重新整理速度快,無漏光,可視角一般最小,色彩失真,相對便宜,高重新整理率的電競屏一樣很貴。顯示器選va還是tn這些點很重要看過你就懂了 2 va面板 對比度高,無漏光,但可視角相對來說較窄,根據觀察角度會存在不同程度的色彩偏移的情況。2 va面板 tn面板特點 ...

va 的注釋巨集

將要注釋的類名拷貝。將游標放到空白處從va工具欄中選中該巨集名即可 類名 clipboard 基類 baseclassname klobject 命名空間 klseis kldata datamodel 作者 ryy 建立時間 year month day hour minute 描述 end 將要...

struct的用法和struct的對齊原則

struct在c語言中作為結構體。結構體定義 struct stu 使用 struct stu a 或者省略關鍵字struct stu a 也可以定義和使用同時 struct stu a 在後續使用中,出現結構體型別的地方都可以在前面加struct,用來提醒別人這個型別是自定義結構體 當然也可以省略...