Oracle对像和类型

Oracle创建一个对象:

CREATE TYPE Test_Type AS OBJECT ( --对象名
      gid NUMBER(10),             --对像字段.
      gname VARCHAR2(20)
);

创建对象数组:

CREATE OR REPLACE TYPE test_TABLE AS TABLE OF Test_Type;	--test_TABLE为:你的数组名

testArray test_TABLE := test_TABLE();         --初始化. 等于New.

testArray.extend(5);      --分配五个空间.

testArray(1) := Test_Type(1, '小天__');       --赋值时,每个字段必须有值.

--便利Table
FOR i IN 1..testArray.COUNT LOOP
   dbms_output.put_line(testArray(i).gid);
END LOOP;

完整过程:

CREATE TYPE TEST_TYPE AS OBJECT( --创建对象. 
  GID   NUMBER(10),
  GNAME VARCHAR2(20)
);

--建立数组
CREATE OR REPLACE TYPE TESTTABLE AS TABLE OF TEST_TYPE; 

--过程使用.
CREATE OR REPLACE PROCEDURE 

  TEST_TEST IS TESTARRAY TESTTABLE := TESTTABLE();
  
BEGIN 
   TESTARRAY.EXTEND(5);
   TESTARRAY(1) := TEST_TYPE(1, 'xxxx');
    FOR i IN 1 .. TESTARRAY.COUNT LOOP
       DBMS_OUTPUT.PUT_LINE(TESTARRAY(I).GID);
    END LOOP;
END;


JAVA里通过JDBC传参数,传入数组:

	public void call(){
		Connection connection = null;
		OracleCallableStatement statement = null;
		int[] dataArray = new int[1];
		dataArray[0] = 1;
		try {
//			connection = DataBase.getConnection();	//连接池获得的连接. 在这里不可以用.
			Class.forName("oracle.jdbc.driver.OracleDriver");	//只能自己新建一个连接.
   		    connection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "oracleUserName","orclePassword");
			
			//test_TABLE :为Oracle对像数组
			ArrayDescriptor arrayDesc = ArrayDescriptor.createDescriptor("test_TABLE ",connection); 
			ARRAY array_data = new ARRAY(arrayDesc, connection, dataArray);
			statement = (OracleCallableStatement) connection.prepareCall("call GET_USER_NAME(?)");
			statement.setArray(1, array_data);
			statement.execute();
		} catch (SQLException e) {
			Global.log.error(e);
		}finally{
			DataBase.close(connection, statement);
		}
	}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。
Oracle数据库中,对象类型是一种用户定义的数据类型,它允许您创建自定义的复杂数据结构。对象类型可以包含多个属性,每个属性都有自己的数据类型。通过创建对象类型,您可以定义具有自己的属性和方法的新数据类型。 以下是创建和使用对象类型的示例: 1. 创建对象类型: ```sql CREATE TYPE employee_type AS OBJECT ( employee_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), hire_date DATE ); ``` 上述示例中,我们创建了一个名为`employee_type`的对象类型,它有四个属性:`employee_id`、`first_name`、`last_name`和`hire_date`。 2. 创建表使用对象类型: ```sql CREATE TABLE employees ( employee employee_type ); ``` 上述示例中,我们创建了一个名为`employees`的表,其中一个列使用了我们之前定义的`employee_type`对象类型。 3. 插入数据: ```sql INSERT INTO employees VALUES (employee_type(1, 'John', 'Doe', TO_DATE('2022-01-01', 'YYYY-MM-DD'))); ``` 上述示例中,我们插入了一条新记录,使用了`employee_type`对象类型的构造函数来创建一个新的对象实例。 4. 查询数据: ```sql SELECT employee.employee_id, employee.first_name, employee.last_name FROM employees; ``` 通过使用对象类型,您可以在Oracle数据库中创建更复杂、更灵活的数据结构,并且可以对这些结构进行操作和查询。对象类型在处理复杂数据模型、对象关系映射(ORM)等方面非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值