廣告聯播

顯示具有 DataBase 標籤的文章。 顯示所有文章
顯示具有 DataBase 標籤的文章。 顯示所有文章

2012年10月25日 星期四

How to change the language of Oracle SQL Developer's user interface? 如何變更 Oracle SQL Developer 的語言介面

From: Polin Wei

Oracle 出了一個免費的 SQL Developer 工具: Oracle SQL Developer
但在中文的 windows 7 下執行,其操作介面也很貼心的將它翻譯成了中文(反而有看沒有懂)該如何將它切換成英文介面呢?

只要修改 %SQLDEVELOPER_HOME%\sqldeveloper\bin\sqldeveloper.conf 這個檔案,增加下面兩行即可

AddVMOption -Duser.language=en
AddVMOption -Duser.country=US
 
再重新執行後就可以看到英文的操作介面了 

2012年5月3日 星期四

SQL Server 2008 Express 的安裝與別名(alias)設定

From: Polin Wei

關於Express的版本

  • SQL Server Express (x86 和 x64)
單純只有SQL Server Express資料庫系統。與with Tools, with Advanced Services兩版本最大差異就是沒有SQL Server Management Studio 2008 Express(SSMSE)管理工具。也就是說,如果你的這台資料庫伺服器只需要讓遠端Client連接進來進行相關作業,根本不會有本機使用SSMSE管理工具的機會,那就很適合這個版本,小又單純。
  • SQL Server Express with Tools (x86 和 x64)

這是2008 Express + SSMSE管理工具的版本。也就是你有需要在資料庫伺服器本機做一些組態設定…等相關操作,那你就安裝這個版本。
  • SQL Server Express with Advanced Services (x86 和 x64)

除了SQL Server Express與SSMSE管理工具外,還提供「全文索引」及「報表伺服器」兩大功能。

SQL Server 2008 Express的限制

在開始進入安裝之前,我們要先了解2008 Express的一些限制。在2008 Express中除了進階軟體功能的限制外(例如:壓縮),另外更重要的就是硬體上的限制,在功能差異方面,請參考上一節的註解「SQL Server 2008版本功能差異」。而2008 Express硬體的限制延續2005 Express一樣的限制:
  • CPU數目:1
  • 記憶體上限:1 GB
  • 64位元支援:Windows on Windows (WOW)
  • 資料庫大小:4 GB
2008 Express 的限制是「單一mdf檔案的大小」有限制,所以如果你預計你的資料庫大小會超過4 GB時,除了購買正式版外,在2008 Express上你可以多開幾個資料庫檔案避開這部分的限制,例如:products.mdf、members.mdf,但唯一麻煩可能是程式就要設計成 「跨資料庫存取」的方式。

SQL Server 2008 Express 安裝前環境準備

在開始安裝SQL Server Express之前,必須先準備好作業系統.NET Framework環境,所以我們必須先行下載以下套件(最好依順序安裝):

  • Microsoft .Net Framework 3.5 SP1:下載點(啟動載入器)、下載點(完整套件)
  • Windows Installer 4.5:下載點 (需重開機)
  • Windows PowerShell 1.0:
    x86 版 Windows XP Service Pack 2 的 Windows PowerShell 1.0:下載點
    x64 版 Windows XP Service Pack 2 的 Windows PowerShell 1.0:下載點
    x86 版 Windows Server 2003 Service Pack 1 的 Windows PowerShell 1.0:下載點
    x64 版 Windows Server 2003 的 Windows PowerShell 1.0:下載點
    Itanium 版 Windows Server 2003 Service Pack 1 的 Windows PowerShell 1.0:下載點
    x86 版 Windows Vista 的 Windows PowerShell 1.0:下載點
    x64 版 Windows Vista 的 Windows PowerShell 1.0:下載點

要比較注意的只有PowerShell一項,請選擇正確的版本對應的PowerShell,進入下載面畫後,你可以依需求切換PowerShell的語 系版本,也就是說,假設我不要使用繁體版本,我習慣看英文,那就可以選擇安裝英文版本的PowerShell,安裝之後,以後只要有關 PowerShell的任何訊息都會以英文來顯示。重點是,對應的作業系統版本要對,語系看你喜好。

另外只有一種情況下可以不安裝 PowerShell,只有單純安裝「SQL Server Express」這個版本時,可以不下載及安裝PowerShell,其他兩個2008 Express版本(with Tools及with Advanced Services),或單獨安裝SSMSE管理工具,都需要安裝以上三個套件。

SQL Server 2008 Express 安裝

  • SQL Server Express Service Pack 1:下載點
    Microsoft SQL Server 2008 Management Studio Express:下載點
  • SQL Server Express with Tools:下載點
  • SQL Server Express with Advanced Services:下載點
  • SQL Server Expres Service Pack 1:下載點
  • Microsoft SQL Server 2008 線上叢書 (2009 年 5 月):下載點
  • 範例和範例資料庫 (英文):下載點
2009年4月7日SQL Server Express推出Service Pack 1,所以你安裝with Tools及with Advanced Services版本,切記,安裝之後一定要快上Service Pack 1,依照基本預計值應就可以安裝成功。

SQL Server 2008 Express 的「執行個體」

「執行個體」,簡單說,你就把執行個體看成每一個「資料庫的名稱」,例如,我這次安裝的資料庫名稱叫「SQLEXPRESS」,然後,我在同一台電腦再安裝一次SQL Server 2008,然後我給他執行個體的名稱為「SQLBruce」。然後只需在使用時(SSMSE、網頁、應用程式都一樣)指定你所要「連接」的資料庫執行個體名稱,這些程式就知道要跟那一個資料庫來進行連接及處理的動作。

預設執行個體:此執行個體是藉由執行它的電腦網路名稱來識別。一部電腦中只能有一個是預設執行個體。它能讓較早SQL Server版本來使用SSMSE來連線到預設執行個體。

具名執行個體:此執行個體是以電腦的網路名稱加上執行個體名稱來識別,格式為{Computer Name}\{Instance Name},例如:

DS\SQLExpress
DS\SQLBruce
以上是標準使用{Computer Name}\{Instance Name}的格式。

192.168.1.10\SQLExpress
192.168.1.10\SQLBruce
你也可以使用IP來代替{Computer Name}部分。

DS.yourdomain.com\SQLExpress
DS.yourdomain.com\SQLBruce
你也可以使用Domain來代替{Computer Name}部分。IP與Domain在遠端連線時會使用到。

.\SQLExpress
.\SQLBruce

這個重要,這個「‧」(點)代表「本機」的意思。如果你是在本機作業,那就可以使用這個簡寫「‧」來代替{Computer Name},例如,你的資料庫與網站是在同一台伺服器,那麼網站內與資料庫連接相關程式碼,就可以使用這個「‧」來簡化程式碼

SQL Server 2008 Express 別名設定

若要以輸入192.168.1.10 來取代 192.168.1.10\SQLExpress 登入資料庫則需要作下列步驟
  • Protocals For SQLEXPRESS 的 TCP/IP 要Enable,與將 IPAll 的 TCP Port 設為1433
  •  啟用 Client Protocals 的TCP/IP ,讓外來的電腦可連入這台主機的 SQL Server 2008 Express
  •  設定別名(Alias)192.168.1.10就可以登入為192.168.1.10\SQLEXPRESS
  • 啟動 SQL Server Browser 的 Services
  •  別忘了將防火牆對 SQL Server 2008 通訊的 1433 port 開啟
  •  遠端電腦要連入時,就可以在伺服器用192.168.1.10 取代192.168.1.10\SQLEXPRESS 登入了

 截圖請看 http://mis.elaborate-host.net/modules/tad_book3/page.php?tbdsn=203
參考:http://blog.kkbruce.net/2009/08/microsoft-sql-server-2008-express.html#.T4vlPtmd0ug

2010年6月22日 星期二

External Table In Oracle

From: Polin Wei


Oracle 的 External Tables 被定義為可以讀取資料庫外部的資料,如:文字檔案、CSV...等檔案;您可以把它當成是一個可以不需事先將資料導入( load in ) 資料庫就可以進行 Query 的 View,您可以針對 external table 的 data 作 select、join、sort 等動作,也可以對 external tables 建立 views,synonymes。但是,你不能對這些 external 作DML 的動作(UPDATE, INSERT, or DELETE),也就是只能讀取( Read Only ),而且也不能建立 index。

下面的範例中,將對不同格式 Comma delimitedFixed field length 的檔案來作示範。

繼續詳細閱讀...

2009年4月14日 星期二

MSSQL 2000 附加資料庫時, 只有MDF檔 或 出現LSN錯誤

From: Polin Wei

MSSQL 2000 Server 建立一個資料庫時, 會有兩個檔案 MDF 檔(資料檔) 及 LDF 檔(交易檔), 有時因為某種原因(如當機, 備份時間不一致...等), 致使這兩個檔的 LSN 不一致. 或者只備份 MDF 檔, 因此在附加資料庫時, 會發生 LSN 的錯誤. 以致於資料庫無法附加


環境:
OS: Windows Server 2k3 SP2
MSSQL: 2000 版本8.0
資料庫: ATest
資料庫檔案: D:\DB\ATest_Data.MDF (遺失 ATest_Log.LDF 或兩者不同步, 導致附加資料庫時出現 LSN 錯誤)

要救回資料庫的方法如下:

Step 01: 新建立一個相同的資料庫, 建立好後 shutdown MSSQL 2k


Step 02: 移除新建立資料庫的檔案 D:\DB\ATest_Data.MDF & ATest_Log.LDF , 將原來的 ATest_Data.MDF 放回 D:\DB

Step 03: 在 SQL Query Analyzer 中執行以下语句,把该数据库设置为紧急模式
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go




Step 04: 接著執行 下列指令
update sysdatabases set status = 32768 where name = 'ATest'

Step 05: 重启SQL Server服务, 會發生此資料庫進入緊急模式


Step 06: 執行 sp_dboption 指令,把資料庫设为Single User模式;
sp_dboption 'ATest', 'single user', 'true'

Step 07: 執行 DBCC CHECKDB
DBCC CHECKDB('ATest')


Step 08: 執行 DBCC REBUILD_LOG , 重建立 LDF 檔, 此時可以看到資料庫內的資料表了
DBCC REBUILD_LOG('ATest','D:\DB\ATest_Log.LDF')




Step 09: 執行下列指令, 将資料庫回覆正常狀態
update sysdatabases set status=0 where name='ATest'
或者
sp_resetstatus "ATest"
go
sp_configure 'allow updates', 0
reconfigure with override



Step 10: 執行 sp_dboption 指令, 將資料庫設回多人模式:
sp_dboption 'ATest','dbo use only','false'

Step 11: 重啟 MSSQL Server 2000 即可

2009年1月12日 星期一

[DataBase] PreparedStatement & Statement 的差異

From: Polin Wei

Java 程式語言在寫入資料庫有兩種方式 PreparedStatement 與 Statement , [Java] Date Type Write In DataBase 日期型態如何寫入資料庫 一文中有 PreparedStatement 的程式範例, 至於 Statement 的程式碼如下:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public void writeInDB(){
Connection conn = null;
String sql ;
Statement pstmt ;
ResultSet rs;
try {
    sql = "Select id,name FROM mydate where id='" + PolinWei + "'";
    stmt = conn.createStatement();
    rs = stmt.executeQuery(sql);
    if ( rs.next() ){
       name = rs.getString("NAME");
       System.out.println("name: " + name);           
    }
    rs.close();
    stmt.close();
} catch (Exception e) {
    System.err.println(e);
} finally {
    try {
    conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}


看似 Statement 比 PreparedStatement 的程式為簡單, 且程式碼較為精簡 , 但若這支程式的使用率很頻繁, 且 WHERE 條件中的值也每次都不一樣時, 建議應使用 PreparedStatement , 因為這會讓後端的資料庫在作 Parse 時, 負載會減輕很多.

附註: 若希望 ResultSet 可以上一筆, 下一筆的查詢. 則在宣告 Statement stmt 時要加入 ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY 這兩個參數, 如:

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

2009年1月7日 星期三

[Java] Date Type Write In DataBase 日期型態如何寫入資料庫

From: Polin Wei

完整的程式如下:

import java.util.Date;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public void DateWriteInDB(){
Connection conn = null;
String sql ;
PreparedStatement pstmt ;
ResultSet rs;
try {
java.util.Date now = new java.util.Date(); //取得現在時間
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sf.setTimeZone(TimeZone.getTimeZone("GMT")); // 設定時區為格林威治 GMT 時區
String sGMT = sf.format(now);
java.sql.Timestamp createDate = Timestamp.valueOf(sGMT); // 要轉換成 java.sql.Date 的物件才可以寫入資料庫

sql = "INSERT INTO mydate (id, create_date) VALUES (?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "01");
pstmt.setTimestamp(2, createDate);
pstmt.execute();
} catch (Exception e) {
System.err.println(e);
} finally {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}


PS: 日期型態要寫入資料庫, 需要用 java.sql.PreparedStatement 物件來寫入

2008年8月28日 星期四

[DataBase] Oracle 的資料由 Linux 跨平台移轉到 Windows 平台

From: Polin Wei

Oracle DataBase 中的資料要跨平台移轉, 可以使用 exp/imp 的模式來作. 本範例示範由 Linux 平台移至 Windows 平台, 共有六個步驟:

先在 Windows 平台作好準備
step 1: create tablespace (建立與 Linux 平台一樣的 Tablespace 名字及檔案)

CREATE TABLESPACE "USERS_DATA"
LOGGING
DATAFILE 'C:\oraclexe\oradata\XE\USERS_DATA01.DBF' SIZE 50M
DEFAULT STORAGE ( MAXEXTENTS UNLIMITED);


step 2: Drop Users (帳號存在時, 才要作此步驟)

drop user JAPPS cascade;


step 3. Create Users(建立使用者)

create user JAPPS identified by JAPPS default tablespace USERS_DATA temporary tablespace temp;


step 4. Grant Permission (給予 create session 及 resource權限)

grant create session,resource to JAPPS;


step 5. export datas from original server (從 Linux 平台上匯出資料)

exp system/tiger@xp owner=\(JAPPS\) file=/tmp/exp_linux_data.dmp log=/tmp/exp_linux_data.log statistics=none grants=yes


step 6. import datas from dump file( import 到 Windows 平台)

imp system/oraclexe@xe grants=yes full=y ignore =y file="exp_linux_data.dmp" log="exp_linux_data.log"


以上就完成資料庫跨平台的移轉了

2008年8月25日 星期一

[DataBase] 如何在 OracleXE 建立自己的 Tablespace

From: Polin Wei

  在 OracleXE 資料庫中, 預設儲存的 Tablespace 是 USERS , 而 Temporary Tablespace 是 TEMP ,但若想要建立自己的帳號及預設的 Tablespace 該如何作呢?

先下SQL :
SELECT * FROM V$TABLESPACE;
查詢現有的 TABLESPACE






第一步驟:
  先建立一個 Tablespace 及該實體檔案的位置

CREATE TABLESPACE "sc"
LOGGING
DATAFILE ' C:\oraclexe\oradata\XE\ SC01.DBF' SIZE 10M;




第二步驟:
  建立使用者, 並指定要使用的 TABLESPACE and TEMPORARY TABLESPACE

CREATE USER sc <== 使用者名字
IDENTIFIED BY xxx <== 密碼
DEFAULT TABLESPACE sc <== 預設要使用的TABLESPACE
TEMPORARY TABLESPACE temp <== 預設要使用的 TEMPORARY



第三步驟:
 最後要給這個帳號權限

GRANT CREATE SESSION, RESOURCE TO SC;


[DataBase] 更改Oracle XE for Windows 的 HTTP port number?

From: Polin Wei

  Oracle XE (eXpresss Edition) 是一套免費的資料庫管理系統。軟體可以從 這裡來下載

  它的功能和 performance 當然無法和正式的 Oracle 10g Database 相比。但是,當作小型的網頁後端資料庫,已是綽綽有餘。

  Oracle XE 目前已有 for Windows 和 for Linux 兩個平台的版本,而 for Linux 的版本,又分成給 Redhat/Fedora Core 和 SuSE 用的 RPM 版,以及給 Debian 和 Ubuntu 用的 DEB 版。

  只用過 for Windows 版和 RPM 版,雖然安裝好了之後,由於操作界面採用 Web 形式,所以完全相同。但是在安裝的過程中,卻有一點點的差異。RPM 版在安裝完畢後,會出現以下這條訊息,告訴你還有一些東西要設定,其中就包括 HTTP port number。
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.

  一旦你如以下輸入,我們可以看到第一個問題就是詢問 HTTP port number,當然還有像 SYSTEM/SYS 的密碼設定,還有是否要開機時自動啟動等等:




$ /etc/init.d/oracle-xe configure

Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Press to accept the defaults.

== 下列就是要作修改的設定 ===
Ctrl-C will abort. Specify the HTTP port that will be used for Oracle Application Express [8080]:XXXX
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after

initial configuration:
Confirm the password:
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:


Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8051/apex"


為什麼要更動這個 port number?
  主要的原因是,有很多 HTTP 應用在主機上的 port 80 已經被 web server 使用掉後,第一個想到就是改用 port 8080。這包括 Apache Tomcat,還有很多 Java Servlet Container 都是這樣預設的。所以,除非你的機器已是 production server,不容許安裝一堆奇奇怪怪的東西,否則在 develop system 上 port 8080 已被占用的可能性極高,尤其是 Java server side 應用的開發者。

  接下來,我們要離開 Linux ,來開始我們的 Windows 上的工作。既然無法在安裝時就設定,那麼只好手動來更改了。主要要更動的地方有三個。


第一個步驟:
  到開始功能表中,找到 Oracle Database 10g Express Edition / 執行 SQL 命令行,打開 SQL*Plus。然後在 SQL*Plus 下如以下輸入,xxxx 代表要輸入的 port number,比如 8088:


SQL*Plus: Release 10.2.0.1.0 - Production Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> connect system as sysdba;

輸入密碼: *****
已連線.

SQL> exec dbms_xdb.sethttpport(8088);

已順利完成 PL/SQL 程序.

SQL>exit



下達 exit 指令後,就會跳出 SQL*Plus 環境了。


第二個步驟:
  先找到你安裝 Oracle XE 的安裝目錄。預設值是 C:\oraclexe。如果你安裝時是接受預設值,那麼打開檔案總管,找到這個目錄下的 C:\oraclexe\app\oracle\product\10.2.0\server 這個目錄,打開來。你會發現在這個目錄下有六個網際網路捷徑:


第三步驟:
  我們要修改的是 Database_homepage 及 Online_help 這兩個網際網路捷徑。當你把滑鼠游標到其中一個時,按下右鍵->打開捷徑選單->選擇內容。打開內容對話方塊時;以Database_homepage 這個網際網路捷徑為例;在網頁文件頁籤中,URL 輸入方塊目前是http://127.0.0.1:8080/apex,請將它改成 http://127.0.0.1:xxxx/apex。這裡的 xxxx 就是剛才你更改的 HTTP port number,比如是 8088。然後按下確定鈕。

  同樣的方法修改 Online_help 網際網路捷徑,這樣就大功告成了。這樣你就可以直接使用開始功能表中的 Oracle Database 10g Express Edition / 移到資料庫首頁就可以跳到你的資料庫管理界面了。


WordPress 架站必備外掛