⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 building.sql

📁 OR Mapping工具
💻 SQL
字号:
drop TABLE t_building;drop TABLE t_movie;drop SEQUENCE building_seq;drop SEQUENCE movie_seq;drop TYPE O_BUILDING;drop TYPE MV_ARRAY;create or replace package curs AS	TYPE REFCURSOR IS REF CURSOR;END;/create or replace TYPE STR_ARRAY AS VARRAY (20) OF varchar2(40);/create or replace TYPE INT_ARRAY AS VARRAY (20) OF NUMBER;/create or replace TYPE O_MOVIE AS OBJECT (	movie_oid int,	name  varchar2(40));/create or replace TYPE MV_ARRAY AS TABLE OF O_MOVIE;/create TABLE tab_movie OF O_MOVIE;create or replace TYPE O_BUILDING AS OBJECT (	building_oid int,	name varchar2(40),	occupants STR_ARRAY,	movies MV_ARRAY,	shifts INT_ARRAY);/-- done with types now tables..create SEQUENCE building_seq;create TABLE t_building (	building_oid int,	constraint b_pk primary key (building_oid),	name varchar2(40),	occupants STR_ARRAY,	movies MV_ARRAY,	shifts INT_ARRAY	)	nested TABLE movies STORE AS mv_table;create SEQUENCE movie_seq;create TABLE t_movie (	movie_oid int,	constraint m_pk primary key (movie_oid),	name varchar2(40));-- now procscreate or replace PROCEDURE storeMovie (p_movie IN OUT O_MOVIE)ASBEGIN	insert INTO t_movie VALUES (movie_seq.nextval, p_movie.name)		returning movie_oid into p_movie.movie_oid;END storeMovie;/create or replace PROCEDURE storeBuilding (p_building IN O_BUILDING, o_oid OUT int)ASBEGIN	/*tmp := p_building.movie;	storeMovie (tmp); --inout use oid */	insert into t_building VALUES (building_seq.nextval, p_building.name, 	  p_building.occupants, p_building.movies, p_building.shifts)		returning building_oid into o_oid;END storeBuilding;//*create or replace type REFCURSOR is REF CURSOR return; */create or replace FUNCTION getBuildingNames RETURN curs.REFCURSORAS	c curs.REFCURSOR;BEGIN 	OPEN c FOR select name from t_building;			return c;END getBuildingNames;/ show errorscreate or replace view obv OF O_BUILDING WITH OBJECT OID (building_oid) as 	select t.building_oid, t.name, t.occupants, t.movies, t.shifts		FROM t_building t;create or replace FUNCTION getBuildings RETURN curs.REFCURSORAS	c curs.REFCURSOR;BEGIN 	OPEN c FOR select * from obv;	-- c.close;	return c;END getBuildings;/ show errors;create or replace PROCEDURE getBuilding (param_oid IN int, p_building OUT O_BUILDING)ASBEGIN	p_building := O_BUILDING (NULL, NULL, NULL, NULL, NULL);	  select t.building_oid, t.name, t.occupants, t.movies, t.shifts		INTO p_building.building_oid, p_building.name, p_building.occupants,			p_building.movies, p_building.shifts		FROM t_building t 		WHERE t.building_oid = param_oid;	/* and t.movie_oid=m.movie_oid; */	  END getBuilding;/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -