2013年6月26日

< s:iterator

如果要跑回圈的資料來源是一個list包著map

需要多一層<s:iterator

範例:
<s:iterator value="#request['immaplist']" status="stat">
  <s:iterator>
   <s:property value="#stat.index"/>
    <s:property value="key"/>
    <s:property value="value"/>
  </s:iterator>
 </s:iterator>

2013年6月20日

< s:fielderror 五四三

標準寫法(我最常用的):
<s:fielderror theme="myThem" cssClass="error-message" fieldName="email" />

 cssClass="error-message" ←←自己設的css

忘了為了什麼目的的寫法:
<s:fielderror  cssClass="error-message"><s:param>email</s:param> </s:fielderror>

無效寫法:
<s:fielderror value="startYear.val" />


判斷是不是有fielderror:
<s:if test="hasFieldErrors()">  有錯誤訊息!!</s:if>


2013年6月7日

字串從右邊算來取N位

substr(dept.name ,-N)

查詢各表 總筆數(總列數) 使用量(大小)

SELECT USER_TABLES.TABLE_NAME ,num_rows 列數 ,
SUM(BYTES) / (1024 * 1024) AS "size(M)"
FROM USER_TABLES,
USER_SEGMENTS WHERE USER_SEGMENTS.SEGMENT_NAME = USER_TABLES.TABLE_NAME
GROUP BY USER_TABLES.TABLE_NAME,num_rows
ORDER BY "size(M)" DESC

SQL Developer 不能enter 不能ctrl c v



Tools→Preferences→Accelerators→Load Preset button


資料來源:https://forums.oracle.com/forums/thread.jspa?threadID=692894

 Select Tools, Preferences, Accelerators and hit the Load Preset button. This rests them to default. It's less drastic than deleting the system folder.

oracle的亂數


select substr(to_char(dbms_random.value),5,5)rnd  from xx  --只有數字
SELECT ABS(dbms_random.normal)  from xx  --只有數字
SELECT (1+ABS(MOD(dbms_random.random,100000))) from xx   --只有數字


dbms_random.string(opt IN CHAR, len IN NUMBER) --RETURN VARCHAR2;
opt seed values:
'a','A'  alpha characters only (mixed case) ←只有字母
'l','L'  lower case alpha characters only
'p','P'  any printable characters ←有符號
'u','U'  upper case alpha characters only
'x','X'  any alpha-numeric characters (upper) ←字母和數字

SELECT dbms_random.string('A', 5) RNDMSTR from  xx   --只有字母

SELECT dbms_random.value(2, 5)RNDMSTR from xx --亂數區間2~5

2013年6月5日

ORA-12528


資料來源:http://blog.sina.com.cn/s/blog_636415010100x3lc.html

ORA-12528: TNS:listener: all appropriate instances are blocking new connections
    ORA-12528問題是因為監聽中的服務使用了動態服務,實例雖然啟動,但沒有註冊到監聽。實例是通過PMON進程註冊到監聽上的,而PMON進程需要在MOUNT狀態下才會啟動。所以造成了上面的錯誤。
    解決這個問題,有三種方法:1、把監聽設置為靜態,2、在tnsnames.ora中追加(UR=A),3、重新啟動服務。

    一、通過修改listener.ora的參數,把動態的參數設置為靜態的參數,然後從新啟動監聽# listener.ora Network Configuration File: $ORACLE_HOME\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = [DBNAME])
      (ORACLE_HOME = [$ORACLE_HOME])
      (SID_NAME = [SID])
    )
  )
    靜態註冊的風險:如果在instance運行中,lisener重新啟動,就找不到instance了。靜態註冊需要先啟動lisener,再啟動instance。且靜態模式下,lisener status顯示的是unknown
    二、啟動到nomount狀態,通過修改tnsnames.ora的參數# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SYK =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SYK)
      (UR=A)    )
  )
    然後連接上數據庫
    SQL>alter database mount;
    SQL>alter database open;
    三、重啟ORACLE或者重啟ORACLE服務

找出一年內資料

SELECT * FROM XX WHERE stime> add_months(SYSDATE, -12)

匯入/匯出資料庫

匯入資料庫
imp username/password@sid
匯出資料庫
EXP username/password@sid file=c:\DB\OOO\ZZZ.DMP log=c:\DB\OOO\ZZZ.log
(sid xe)

exp 不要匯出資料 rows=no

 ↓↓忘了是什麼用法= = exp username/password@sid   FILE=/prod2/dbwork/expdata/EXP_A6417K01_H1.dmp tables=A6417K01
QUERY=\"where SYSDAT \< \'20090930235959\' and K1DEAL \<> \'1\'\"
log=/prod2/dbwork/expdata/EXP_A6417K01_S1.log ROWS=y GRANTS=y

ORACLE:ORA-01940 無法刪除使用者


解決辦法:
1.找出卡在線上的 SESSION ,請用有管理權限之帳號(我是用SYSTEM 做的 , 對 ORACLE DB 有點小小不熟,對權限控管的定義還不是很清楚) ,在可操作 ORACLE 的工具上\執行以下t T-SQL
select username,sid,serial# from v$session where username='USER_NAME';
2.可查出如以下列表資料
USERNAME   
SID
SERIAL#
USER_NAME
37
41363
USER_NAME
47
25604
USER_NAME
158
14321


3.把 SESSION 踢掉 , 請用以下 T-SQL  (SID=37 ,SERIAL=41363), 全部 踢完就可以去刪資料庫了
alter system kill session'37,41363';
資料來源:
http://www.google.com/url?q=http%3A%2F%2Fjason0324.pixnet.net%2Fblog%2Fpost%2F37310500&sa=D&sntz=1&usg=AFQjCNGGYJgZoiQ7KWKq38IcdiFp46r3-w