2013年11月23日 星期六

[Tips]Oracle 11g Architecture 資料庫架構(上) - Oracle Instance

從下圖我們可以發現,其資料庫架構看起來相當複雜呢!

大致可以先簡單分為Oracle InstanceOracle database files,當我們提及Oracle Server的時候,它同時包含了上述兩個東西。以下將分為兩篇針對其進行個別探討:
Oracle的架構裡包含了許多複雜的元件,也是Oracle對於初學者相當不好學習的地方,而理解這些對於了解Oracle運作有相當大的幫助,讓我們一起來看看吧^_^

2013年11月21日 星期四

[Tips]運用PL/SQL撰寫procedure/function/package

運用PL/SQL,我們可以撰寫成procedure/function/package,便可以重複呼叫利用,或是放到DBMS_JOB中去例行執行。
  • procedure:沒有回傳值
  • function:要有回傳值
  • package:類似Java的com package概念,利用來打包一至多個procedure/function,更方便管理。

2013年11月13日 星期三

[Tips]如何建立Tablespaces

在Oracle Database中,Tablespaces包含一至多個Datafiles。而Datafiles用來儲存資料,一個Datafile只能存在一個Tablespace中。

CREATE TABLESPACE Tablespace_Name

DATAFILE 'file_specification' SIZE volume
AUTOEXTEND [ON/OFF] NEXT volume MAXSIZE volume;

2013年11月12日 星期二

[Tips]基本介紹Oracle PL/SQL

PL/SQL(Procedural Language/Structured Query Language)是Oracle推出的程序語言(Procedural Language),用來擴充SQL的的功能。PL/SQL中會運用到一些程式裡面變數設定、條件判斷(if..then)、迴圈(for)等概念。

首先我們先來看一個簡單的PL/SQL,主要分為兩個部分,Declare為定義變數的地方,Begin...End為程式邏輯的地方,也是主要撰寫著墨的部分。


DECLARE
  v1 number(5);
  v2 varchar2(10);
  v3 date;
BEGIN
  --to do
END;

2013年11月10日 星期日

[Tips]常用的DBA/USER_、V$的表格和視圖

在Oracle Database中,我們可以用DBA_、USER_和V$的表格和視圖來獲取一些資訊,幫助我們進行資料庫的管理,現在就讓我們來看看吧。
  • DBA_:代表能夠看到所有的資訊。
  • USER_:代表只能看到當前USER的資訊。
  • V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。

2013年11月9日 星期六

[Tips]關於DBA_JOBS及DBMS_JOBS.

在Oracle Database中,我們可以利用DBA/ALL/USER_JOBS來觀看我們排定的工作行程,然後利用DBMS_JOBS.來進行工作的安排和管理。

SELECT * FROM [dba_jobs/all_jobs/user_jobs];

  • DBA_JOBS:代表可以看到所有的Jobs,包含一些只有DBA才能看。
  • ALL_JOBS代表可以看到所有的連線到資料庫的USER的Jobs。
  • USER_JOBS:代表只能看到當前USER的Jobs。
  • DBA_JOBS_RUNNING:代表目前正在運作的Jobs。

2013年11月8日 星期五

[Tips]如何建立Database Link

Oracle Database中,當我們想要查詢其它資料庫的時候,可以利用Database Link來達成目的。

CREATE DATABASE LINK 
DBlink_Name
CONNECT TO user IDENTIFIED BY "password"
using 'Service_Name';