取得目前 SESSION 的 USER
select sys_context('USERENV','SESSION_USER') from dual;
取得目前 SESSION 的 SCHEMA
select sys_context('USERENV','SESSION_SCHEMA') from dual;
2009年5月28日
Oracle DB 取得目前 SESSION USER、SCHEMA
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
使用 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 SYNONYMFOR ;
範例:
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/
EXEC DBMS_XDB.SETHTTPPORT(nnnn);
Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu
安裝好後執行初始設定
$ /etc/init.d/oracle-xe configure
可免費使用的 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/
passwordEXEC 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 ...
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;
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"
[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"
訂閱:
文章 (Atom)