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

2009年5月28日

Oracle DB 取得目前 SESSION USER、SCHEMA


取得目前 SESSION 的 USER
select sys_context('USERENV','SESSION_USER') from dual;
取得目前 SESSION 的 SCHEMA
select sys_context('USERENV','SESSION_SCHEMA') from dual;

Oracle 的日期格式


Oracle 中的日期操作

將日期轉成文字 To_char
select To_char(sysdate, 'YYYY/MM/DD HH24:MI:SS') from dual

將文字轉成日期
select To_date('2007/03/21 19:30:00') from dual

取得目前 session 中所設定的日期格式
select value from nls_session_parameters t where t.parameter = 'NLS_DATE_FORMAT'

設定目前 session 的日期格式為 YYYY/MM/DD HH24:MI:SS
alter session set NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'

以目前 session 的日期格式來做 Query
select sysdate from dual where sysdate > '2007/03/21 18:00:00'

以目前 session 的日期格式來做 Update
update <table name>
set <date field> = '2007/3/21 10:10:10'

取得 Oracle Table 和 Column 的註解


-- 取得 Table 註解
select table_name, comments
from sys.user_tab_comments
where table_type ='TABLE'
and comments is not null
;

-- 取得 Column 註解
select table_name, column_name, comments
from sys.user_col_comments
where comments is not null
;

2009年1月30日

解決 Oracle JDBC Driver DATE TYPE 無法取得時間的問題

What is going on with DATE and TIMESTAMP?
使用 ojdbc14.jar 連某些版本的資料庫,若使用 getObject() 來取得 DATE TYPE 欄位資料時,會有取不到時間的問題,可加系統參數
java -Doracle.jdbc.V8Compatible="true" MyApp

2008年12月20日

Oracle Synonym


Synonym 同義詞就是別名的意思,可以使用的有 tables, views, sequences, stored procedures 等資料庫物件,物件需有授權(grant)。

建立同義詞:

CREATE OR REPLACE SYNONYM FOR ;

範例:

userB 要使用 userA 的 tableA 並以相同名稱來操作時。
做法是以 DBA 登入後,將 userA.tableA 操作方法授權給 userB:

GRANT SELECT, INSERT, UPDATE, DELETE ON userA.tableA TO userB;

再建立同義詞 userB.tableA 相等於 userA.tableA:

CREATE OR REPLACE SYNONYM userB.tableA FOR userA.tableA;

測試 userB 是否可直接使用 tableA,以 userB 登入後查詢資料:

SELECT * FROM tableA;

若成功則可列出 userA.tableA 的資料。

2008年11月15日

Oracle Database 10g Express Edition

Oracle Database 10g Express Edition
可免費使用的 Oracle,其限制為 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine

Changing the Listener Port Number for HTTP Connection Requests
更改管理網站的 Port
SQLPLUS /NOLOG
CONNECT SYSTEM/password
EXEC DBMS_XDB.SETHTTPPORT(nnnn);

Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu
安裝好後執行初始設定
$ /etc/init.d/oracle-xe configure


2008年5月3日

Oracle SQL Developer

Oracle SQL Developer
Oracle SQL Developer is a free graphical tool for database development.
Support database
Oracle, MySQL, Access

sqldeveloper/sqldeveloper/bin/jdk.conf
AddVMOption -Xmx256M
SetJavaHome /usr/lib/jvm/java-6-sun

Change Daet Format
Tools -> Preferences -> Database -> NLS Parameters -> Daet Format
YYYY-MM-DD HH24:MI:SS

Add Third Party JDBC Drivers
Tools -> Preferences -> Database -> Third Party JDBC Drivers
mysql-connector-java-5.1.5-bin.jar ...

2008年4月2日

Change Oracle CURRENT_SCHEMA

-- 取得 current session 所指定的 SCHEMA
SELECT SYS_CONTEXT('USERENV','SESSION_SCHEMA') FROM DUAL;
-- 變更 current session 的 SCHEMA 為 NEW_SCHEMA_NAME
ALTER SESSION SET CURRENT_SCHEMA = NEW_SCHEMA_NAME;

2007年4月27日

Oracle Recompile user procedures


create or replace procedure USER_RECOMPILE_PROCEDURE is
begin
for tempCursor in (
select object_name
from user_objects
where object_type = 'PROCEDURE'
and status = 'INVALID'
) loop
execute immediate 'ALTER PROCEDURE ' ||
tempCursor.Object_Name || ' compile';
end loop;
end USER_RECOMPILE_PROCEDURE;
/
exec USER_RECOMPILE_PROCEDURE;

2007年1月9日

Connecting to Oracle on Windows XP

add to registry

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\GloballyOpenPorts\List]
"1521:TCP"="1521:TCP:*:Enabled:Oracle Port 1521"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"USE_SHARED_SOCKET"="TRUE"

網誌存檔