会员登录
用户名:
密 码:
注册
[Oracle]八个学习点帮助你全面认识Oracle数据库
教育培训网 2007-08-31

  八个学习点帮助你全面认识Oracle数据库 

  TableSpace

  表空间:

  一个表空间对应多个数据文件(物理的dbf文件)

  用语法方式创建tablespace,用sysdba登陆:

  --创建表空间mytabs,大小为10MB:

  create tablespace mytabs datafile
  'C:\oracle\oradata\mydb\mytabs1.dbf' size 10M;
  alter user zgl default tablespace mytabs;
  --把tabs做为zgl的默认表空间。
  grant unlimited tablespace to zgl;
  --将操作表空间的权限给zgl。

  Exception

  示例:

  create or replace procedure
  pro_test_exception(vid in varchar2) is
  userName varchar2(30);
  begin
  select name into userName from t_user where id=vid;
  dbms_output.put_line(userName);
  exception
  when no_data_found then
  dbms_output.put_line('没有查到数据!');
  when too_many_rows then
  dbms_output.put_line('返回了多行数据!');
  end pro_test_exception;

  安全管理

  以下语句以sysdba登陆:

  用户授权:

  alter user zgl account lock;--锁定帐号。

  alter user zgl identified by zgl11;--修改用户密码。

  alter user zgl account unlock;--解除帐号锁定。

  alter user zgl default tablespace tt;--修改用户zgl的默认表空间为tt。

  create user qqq identified by qqq123 default tablespace tt;--创建用户。

  grant connect to qqq;--给qqq授予connect权限。

  grant execute on zgl.proc01 to test;--将过程zgl.proc01授予用户test。

  grant create user to zgl;--给zgl授予创建用户的权限。

  revoke create user from zgl;--解除zgl创建用户的权限。

  角色授权:

  create role myrole;--创建角色myrole

  grant connect to myrole;--给myrole授予connect权限

  grant select on zgl.t_user to myrole;--把查询zgl.t_user的权限授予myrole

  grant myrole to test;--把角色myrole授予test用户

  概要文件(配置文件):

  全局设置,可以在概要文件中设置登陆次数,如超过这次数就锁定用户。

  Synonym

  创建同义词示例:

  create public synonym xxx for myuser.t_user
  create synonym t_user for myuser.t_user
  select * from dba_synonyms where table_name='T_USER'

  course示例

  示例1:

  create or replace procedure pro_test_cursor is
  userRow t_user%rowtype;
  cursor userRows is
  select * from t_user;
  begin
  for userRow in userRows loop
  dbms_output.put_line
  (userRow.Id||','||userRow.Name||','||userRows%rowcount);
  end loop;
  end pro_test_cursor;

  示例2:

  create or replace procedure
  pro_test_cursor_oneRow(vid in number) is
  userRow t_user%rowtype;
  cursor userCur is
  select * from t_user where id=vid;
  begin
  open userCur;
  fetch userCur into userRow;
  if userCur%FOUND then
  dbms_output.put_line
  (userRow.id||','||userRow.Name);
  end if;
  close userCur;
  end pro_test_cursor_oneRow;

  record示例

  create or replace
  procedure pro_test_record(vid in varchar2) is
  type userRow is record(
  id t_user.id%type,
  name t_user.name%type
  );
  realRow userRow;
  begin
  select id,name into
  realRow from t_user where id=vid;
  dbms_output.put_line
  (realRow.id||','||realRow.name);
  end pro_test_record;

  rowtype示例

  create or replace procedure
  pro_test_rowType(vid in varchar2) is
  userRow t_user%Rowtype;
  begin
  select * into userRow from t_user where id=vid;
  dbms_output.put_line
  (userRow.id||','||userRow.name);
  end pro_test_rowType;

用户评论
 
用户名
E-Mail
联系电话
性别
预约时段
联系地址
验证码 点击更换 看不清楚?点击图片换下一个