2.--创建共有数据库链 CREATE PUBLIC DATABASE LINK orcl_link USING 'ORCL';--创建私有数据库链(否则快照不会自动刷新 CREATE DATABASE LINK orcl_link CONNECT TO tom IDENTIFIED BY mao; SELECT * FROM global_name@orcl_link;3.create global tempORARY table test111 ( id number(8), compname varchar2(20), compcode varchar2(50), chapter varchar2(50), compnumber number(8), dealdate date );
问题一: CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype); END pkg_test; /CREATE OR REPLACE PACKAGE BODY pkg_test AS PROCEDURE get (p_id NUMBER, p_rc OUT myrctype) IS sqlstr VARCHAR2 (500); BEGIN IF p_id = 0 THEN OPEN p_rc FOR SELECT ID, NAME, sex, address, postcode, birthday FROM student; ELSE sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id'; OPEN p_rc FOR sqlstr USING p_id; END IF; END get; END pkg_test; / 问题二: 像楼上所写 问题三: 在Oracle8i中,可以创建以下两种临时表: 1。会话特有的临时表 CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> ) ON COMMIT PRESERVE ROWS; 2。事务特有的临时表 CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> ) ON COMMIT DELETE ROWS; CREATE GLOBAL TEMPORARY TABLE MyTempTable 所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。 下面两句话再贴一下: --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行) --ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。问题四: 4G
CREATE PUBLIC DATABASE LINK orcl_link
USING 'ORCL';--创建私有数据库链(否则快照不会自动刷新
CREATE DATABASE LINK orcl_link
CONNECT TO tom IDENTIFIED BY mao; SELECT * FROM global_name@orcl_link;3.create global tempORARY table test111 (
id number(8),
compname varchar2(20),
compcode varchar2(50),
chapter varchar2(50),
compnumber number(8),
dealdate date
);
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/
问题二:
像楼上所写
问题三:
在Oracle8i中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )
ON COMMIT PRESERVE ROWS; 2。事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。问题四:
4G