Oracle ROWNUM 分頁失效根因:ORDER BY 必須唯一
經典分頁寫法: = :start; 實測發現:第 1-3 頁正常,第 4 頁起資料重複。經排查,ORDER BY 欄位組合不唯一 導致 ROWNUM 賦值不穩定
Oracle 高 CPU 進程精準定位與 SQL 追蹤全流程
當 Oracle 進程佔用 CPU 居高不下,需從 OS 進程層層穿透至具體 SQL。標準四步走: Step 1:OS 層定位高 CPU 進程 (SPID)
Oracle 保留兩位小數的 4 種方案與最佳實踐
報表常需將數值格式化為固定兩位小數(如 1234.50、0.00),單純 ROUND(val,2) 會省略尾隨零,顯示不整齊。以下四種方案由簡到精,附優缺點對比
Oracle 10g OEM 常見錯誤排查:Unknown Host、時區與主機名變更
Oracle 10g Database Control (OEM) 對主機名、IP、時區極度敏感,網路環境變更(筆電切換網路、重啟、DHCP 換 IP)極易導致
Linux 下 Oracle 10g/11g 開機自動啟動完整配置腳本
Linux 安裝 Oracle 後預設不會隨系統啟動,需手動配置 dbstart/dbshut 與 systemd (或 chkconfig) 整合。本文提供經
Oracle 動態 SQL 完整開發指南:原理、實戰與效能優化
動態 SQL 在執行階段組裝並執行 SQL 字串,解決靜態 SQL 無法應對的「查詢條件不確定、DDL 執行、物件名稱參數化」等場景。核心機制為晚期綁定,透過
Oracle GROUP BY 欄位順序對效能的影響實測
常見迷思:GROUP BY a, b 與 GROUP BY b, a 結果相同,效能是否也相同? 測試環境建立 CREATE TABLE test(a VAR
Oracle SCN 與 TIMESTAMP 雙向轉換完整指南
System Change Number (SCN) 是 Oracle 內部時鐘標記每次提交的唯一遞增數值。10g 引入 SCN_TO_TIMESTAMP、TI
Oracle PL/SQL 宣告包含非表欄位的游標進階應用
實務開發中,常需建立游標回傳「主表所有欄位 + 關聯表特定欄位」的合併結果集。透過 %ROWTYPE 搭配明確列出關聯欄位,可兼顧彈性與型別安全。 實戰範例
Oracle Statspack 完整部署與效能分析實戰指南
Statspack 是 Oracle 官方輕量級效能診斷工具,適合無 AWR 授權或 10g 以前版本。本文整理從安裝、快照收集到報告分析的完整流程。 部署前
Oracle 11g EM 重建遭遇 ORA-00001 唯一約束衝突解決實錄
手動重建 Oracle 11g Enterprise Manager (EM) 儲存庫時,emca -config dbcontrol db -repos re
ORA-28002:Oracle 11g 密碼即將過期完整解決方案
Oracle 11g 預設啟用密碼生命週期管理,預設 PASSWORD_LIFE_TIME = 180 天。登入時出現 ORA-28002: the passw
Oracle 密碼含特殊字元(@)導致登入失敗的解決方案
當 Oracle 使用者密碼包含 @ 符號時,使用 sqlplus user/pass@tns 格式登入會被解析錯誤:@ 後內容被視為連線識別符,導致 ORA-
Oracle ROWNUM 深度解析:分頁、排序與常見陷阱
ROWNUM 是 Oracle 為查詢結果集動態分配的偽欄位,從 1 開始遞增。理解其產生時機(在 WHERE 過濾之前)是避開陷阱的關鍵。 核心特性速查表
Oracle 跨 Schema 存取資料表:同義詞與權限完整指南
在 Oracle 資料庫中,若使用者 A 需存取使用者 B 擁有的資料表,標準寫法為 SELECT * FROM B.TABLENAME。但能否透過設定讓 A
ADF 應用中追蹤 SQL 執行時間的實作方案
Oracle ADF(Application Development Framework)是 Oracle 提供的企業級開發框架。在進行效能測試時,常需要掌握當
Oracle ORA-01843/ORA-01861 日期格式錯誤徹底解析:NLS_DATE_FORMAT 會話參數影響與 TO_DATE 顯式格式化最佳實踐
兩大經典錯誤 ORA-01861:字面值與格式字串不匹配(隱含轉換失敗) ORA-01843:無效月份(格式指定但解析失敗) 錯誤重現場景 TO_DAT
Oracle WM_CONCAT 列轉行逗號分隔聚合:分組彙總用戶名稱實戰範例與執行結果展示
測試資料準備 CREATE TABLE wlbtest1 (username VARCHAR2(2), deptID NUMBER); CREATE TABLE