程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 八個學習點幫助你全面認識Oracle數據庫

八個學習點幫助你全面認識Oracle數據庫

編輯:Oracle教程

八個學習點幫助你全面認識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'

  跨數據庫查詢

  create database link dblinkzgl

  connect to myuser identified by a using 'mydb'

  Select * From t_user@dblinkzgl

  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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved