2012年12月22日 星期六

找出目前有設定 存放 匯出資料的位置


SQL> SELECT * FROM dba_directories;                

OWNER                          DIRECTORY_NAME                     DIRECTORY_PATH
------------------------------ -------------------------------------------------------------------------
SYS                            ORACLE_OCM_CONFIG_DIR         /oracle/product/11.2.0/dbhome_1/

SYS                            DATA_PUMP_DIR                             /oracle/admin/dpdump/

SYS                            DMPDIR                                               /tmp/test

2012年12月21日 星期五

執行 expdp 時出現 UDE-00010 錯誤

執行 下面語法時出現,UDE-00010: multiple job modes requested, schema and tables.的錯誤訊息


指定匯出的路徑
SQL> CREATE DIRECTORY dmpdir AS '/test/log';

將指定好的匯出路徑給所要匯出資料的用戶(testacc)設定權限
SQL> GRANT READ,WRITE ON DIRECTORY dmpdir TO testacc;

expdp 匯出資料
ssh>expdp testacc/password SCHEMAS=testacc DIRECTORY=dmpdir TABLES=test_table DUMPFILE=test_table.dmp LOGFILE=test_table.log


解決方式:
這是因為 expdp 的 tables、schemas、full 這三個參數不能同時出現,而上面出現 SCHEMAS 和 TABLES,只要將其中一個拿掉即可

2012年12月19日 星期三

table rename

alter table system."test_table" rename to system."test_table_old"
=>會出現下面的錯誤

SQL 錯誤: ORA-14047: ALTER TABLE|INDEX RENAME 不可以與其他作業連結
14047. 00000 -  "ALTER TABLE|INDEX RENAME may not be combined with other operations"
*Cause:    ALTER TABLE or ALTER INDEX statement attempted to combine
           a RENAME operation with some other operation which is illegal
*Action:   Ensure that RENAME operation is the sole operation specified in
           ALTER TABLE or ALTER INDEX statement;

改成下面即可
alter table system."test_table" rename to "test_table_old"

2012年12月5日 星期三

InnoDB出現ERROR: the age of the last checkpoint is xxx

MySQL 的 Error log 出現:

InnoDB: ERROR: the age of the last checkpoint is 122123,
InnoDB: which exceeds the log group capacity 122123.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.


解決方式:
1.調大以下三個參數(vi my.cnf)
innodb_log_buffer_size
innodb_buffer_pool_size
innodb_log_file_size

2.shutdown mysql
ssh# mysqladmin shutdown -uroot -p
Enter password:

3.將 ib_logfile* 刪除
ssh# cd /var/db/mysql
ssh# rm ib_logfile0
ssh# rm ib_logfile1

4.start mysql
ssh# /usr/local/bin/mysqld_safe &

2012年10月29日 星期一

reload sysctl.conf

修改
ssh> vi /etc/sysctl.conf

reload
freebsd:
ssh> /etc/rc.d/sysctl reload

linux:

ssh> cd /sbin
ssh> ./sysctl -p

2012年10月22日 星期一

計算符合資料的行數


<-root->cat test.log | grep 'abc' | wc -l
    2
=====================
ex: standby.log
abc 123 abc
abc

2012年10月2日 星期二

2012年9月14日 星期五

freebsd 刪除 user

# rmuser username
Matching password entry:

username:*:11107:11107::0:0:username:/home/username:/bin/sh

Is this the entry you wish to remove? y
Remove user's home directory (/home/username)? y
Removing user (username): mailspool home passwd.

2012年9月11日 星期二

取得明天的日期

date --date='next day' "+%Y%m%d"
=>20120912

2012年8月27日 星期一

修改 OS 的授權給

OS:XP


修改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 的RegisteredOwner


刪除遠端桌面連線記錄

OS:XP
到HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default下,將IP相關的資訊刪除。




將顯示所有檔案和資料夾開啟

 將Default.rdp刪除


2012年8月6日 星期一

修改欄位時出現_防止儲存需要資料表重建的變更

SQL Server版本:2008

修改欄位時出現以下錯誤訊息:














解決方式:
開啟管理工具(Microsoft SQL Server Management Studio)->工具->選項,將防止儲存需要資料表重建的變更的勾選取消。




2012年7月19日 星期四

windows抓取另一台windows的資料

假設主機A 1.1.1.1要抓取主機B 2.2.2.2 D槽的資料
在主機A輸入 \\2.2.2.2\d$  即可

2012年7月18日 星期三

找出的資料,加入流水號


//row > 9 and row < 200 指撈取 流水號 >9 和 <200的資料
select * from
(select @row := @row + 1 as row, t.*
from test_table as t, (select @row := 0) as r) as f
where row > 9 and row < 200;



SET @ROW = 0;
SELECT @ROW := @ROW +1 AS nums, num, create_date FROM test_table

2012年7月9日 星期一

查詢的字串內含萬用字元

EX:要查 memo 內有 _ (底線)的資料,如下,要找出A_1和A_2的資料
A_1
AA1
AB2
A_2


Sybase:LIKE  'A[_]%' (用中括號包起來)

MySQL:LIKE  'A#_%' ESCAPE '#'

2012年6月21日 星期四

MySQL 的 select into 語法

create table test.test_bk select * from `db1`.` test `;

MySQL 字串連接


CONCAT(string1, string2, string3, …)


EX:字串和字串連接
CONCAT('test','abc')
=> testabc


EX:數字和字串連接 
CONCAT('test',CAST(2222 AS CHAR)) 
=>test2222
(cast:資料類型的型態轉換。)


2012年5月13日 星期日

2012年5月7日 星期一

取前一天的日期

Lunux:
echo "`date --date='1 days ago' "+%b"` `date --date='1 days ago' "+%_d"`"
=> May  6 (中間有兩個空白)


echo "`date --date='1 days ago' "+%b%_d"`"
=>May 6(中間只有1個空白)

FreeBsd:
date -v1d "+%Y%m%d"
=>20130701

2012年2月26日 星期日

PHP 5.3.2 連 SQL Server Express 2005


到微軟下載 Microsoft Drivers for PHP for SQL Server
將下載下來的資料解壓縮後,將要的ddl檔放至php的ext資料夾下
   52: for PHP 5.2
   53: for PHP 5.3
   VC6 : for Apache
   VC9 : for IIS
   ts : ThreadSafe的
   nts: no ThreadSafe的





















修改 php.ini 加入 dll,並重啟 Apache 或 IIS





在  phpinfo( ); 即可看見

SQL Server不允許遠端連接

用 SQL Server Management 連SQL Server 2005 Express時出現:在預設設定下,SQL Server不允許遠端連接

解決方式:
將 TCP/IP 打開,並設定 1433 Port ,設定完後需重啟SQL Server。






2012年2月25日 星期六

將 unix 時間格式轉換成一般日期時間


//將 unix 時間格式轉成一般日期
echo date("Y-M-d H:m:s",1327936805);

//將一般日期格式轉成 unix 時間
echo mktime(23,01,05,01,30,2012);

在windows server 2003 安裝IIS








2012年2月3日 星期五

Oracle的select into 語法

因 Oracle 沒有 Select into 的語法,若要做到此功能,可用
CREATE TABLE user.new_tablename AS SELECT * FROM user.old_tablename


2012年1月12日 星期四

字串前後填入N個字


不足指定長度時,左邊填入字元:LPAD
不足指定長度時,右邊填滿字元:RPAD

EX:
長度不滿 10 的前面補 0
select LPAD( 103, 10, '0' ) from user_object
=>0000000103

2012年1月11日 星期三

Oracle 的字串相加

版本:Oracle 11g
|| 
EX:

select table_name, num_rows, 'analyze table SYSTEM."'|| table_name || '"'
from all_tables
where owner = 'SYSTEM';

2012年1月9日 星期一

length 和 lengthb 的差別

length 是算有幾個字
lengthb 是算字的長度
因沒有 table 所以可用 from dual

ex:
select lengthb('許12功蓋'), lengthb('ab')from dual;
=>  11 2

select length('許12功蓋'), length('ab') from dual;
=>  5 2