更换ORACLE表对象所属用户
以前有个项目将用户表建立在了system用户所属下,后来发觉危害相当大,准备将表对象转移到新建立的LAND用户下,没找到直接的办法,用以下办法得以实现:
1、建立新的LAND用户,在服务器的Oracle Enterprise Manager里分配 对象权限 ,添加对system中数据表对象的 select 权限。
2、以 LAND 用户登录,使用命令: create table <table_name> as select * from system.<table_name>来将数据原样复制到LAND用户下。
相关文档:
Oracle安装篇
版本:win32_11gR1_database_1013
系统:win7
内存:3g(偶自己地-0-)
1、因为操作系统选择了win7,所以在安装之选需要修改一下配置文件,database\stage\prereq\db\refhost.xml
2、修改完配置文件后,点install安装即可,等dos界面加载完后跳出如下界面
3、下一步
4、选择企业版,然后 ......
create or replace procedure proc_test
( a in number, b out number )
as
begin
b:=a+1;
end proc_test;
现在要调用的话就是这样
SQL> c number;
SQL>exec proc_test(1,:c);
千万要注意别忘了写冒号 ......
从游标提取数据
从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:
FETCH cursor_name INTO variable[,variable,...]
对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。
例:
SET SERVERIUTPUT ON
DECLARE
......
用Oracle9i自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的,本文要介绍的是另一种方法,使用Oracle 9i所带的命令行工具:SQLPLUS来创建表空间,这个方法用起来更加简明快捷。
假设 ......
1. 复制表结构及其数据:
create table table_name_new as select * from table_name_old
2. 只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只复制表数据:
如果两个表结构一样:
insert into table_name_ ......