Time of Update: 2018-07-23
--查看oracle資料庫字元集: select * from V$NLS_PARAMETERS select userenv('language') from dual; 查詢結果: SIMPLIFIED CHINESE_CHINA.AL32UTF8 --修改oracle資料庫字元集:(在SQL Plus中) sql> conn / as sysdba; sql&
Time of Update: 2018-07-23
1、問題是:如果多線程之下同時查詢一條資料查不到,則去插入,插入的時候也是多線程插入。 所以想到用select for update來控制不允許多線程插入(其實這種方式並沒有解決問題) 2、先來瞭解幾個名詞: statement: 一個SQL語句。 session: 一個由ORACLE使用者產生的串連,一個使用者能產生多個SESSION ,但相互之間是獨立的。
Time of Update: 2018-07-23
序列 1、【序列】和【視圖】一樣,並不佔用實際的儲存空間,只是在資料字典中儲存它的定義資訊;當使用者在自己的模式中建立【序列】時,使用者必須具備CREATE_SEQUENCE系統許可權; 2、文法: CREATE sequence seq_name [Start with n] [increment by n] [minvalue n|nominvalue] [maxvalue n|nomaxvalue] [cache n] [cycle|nocycle] [order|
Time of Update: 2018-07-23
項目裡使用了MyBatis做持久層,資料庫是Oracle,用到了Batch Insert 功能,因為以前做的都是MySQL,也做過PostgreSQL資料庫,批量插入的語句都相同,但是在Oracle上就不好使了。後來網上搜了下,大致的寫法有兩種: <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false">
Time of Update: 2018-07-23
Mybatis本身是很靈活的,因為可以自己在XML檔案中編寫sql進行操作,那就可以一次性將插入到資料庫中,這樣只用向資料庫提交一次,效能也可以提高不少。下面來看一個例子: 首先,在DataMapper.java 介面類中加入介面: void batchInsertUcfUserBatchImport(List<UcfUserBatchImport> ucfUserBatchImportList) throws Exception;
Time of Update: 2018-07-23
當oraclek中的資料檔案在OS系統下被誤刪除後,該如何恢複呢。 這時千萬不要慌張重啟資料庫或者作業系統,可以通過dbwn進程相關控制代碼找回資料檔案。 測試: 步驟1:用DBA身份登陸資料庫並查看錶空間狀態和資料檔案的路徑 [oracle@localhost ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 18 18:53:44 2016Copyright (c) 1982, 20
Time of Update: 2018-07-23
作為一個程式員,資料庫操作是必須的,但是如果操作失誤,一般都會造成比較嚴重的後果。 今天一不小心,幹了一件揪心的事情,將正在使用的組織機構誤操作執行了delete,頓時大腦有點缺氧,感覺蒙圈了(相信對於沒有資料備份和復原經驗的小夥伴來說都是這樣的感受),但是一想,資料庫一般都是支援資料復原的,然後尋找了一下解決方案。 由於用的是Oracle資料庫,這一點非常好,因為Oracle有閃回功能,瞬間眼前一片光芒。 有兩種方案解決此問題,具體操作: 一:根據時間來恢複:
Time of Update: 2018-07-23
create table my_toys ( id varchar2(5), name varchar2(20), price number ); --插入測試資料 insert into my_toys values(
Time of Update: 2018-07-23
Oracle對Windows的支援: Pro*C/C++ Java,JDBC/SQLJ Oracle Objects for OLE (OO4O) Oracle Provider for OLE DB Oracle Data Provider for .NET COM/COM+ Automation Feature Other tools,Services for Microsoft Transaction Server Oracle
Time of Update: 2018-07-23
情境:伺服器上有個編碼為UTF8的資料庫,然後本地是ZHS16GBK。我直接用EXP命令導下來之後,探索資料庫是亂碼。 解決過程:由於伺服器上的編碼不敢輕易更改,所以考慮將本地編碼改為UTF8,進行匯入之後,再將本地編碼轉換為ZHS16GBK。 1、先查一下本機資料庫的編碼,語句是 select * from nls_database_parameters 2、然後開始修改本地的資料庫編碼:開啟CMD,輸入sqlplus,然後輸入使用者名稱密碼登入。
Time of Update: 2018-07-23
尋找員工編號為7369的領導: 1 SELECT LEVEL,E.* FROM EMP E CONNECT BY PRIOR E.MGR = E.EMPNO START WITH E.EMPNO = 78762 ORDER BY LEVEL DESC "start with" -- this identifies all LEVEL=1 nodes in the tree "connect by" --
Time of Update: 2018-07-23
邏輯上: Single column 單行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函數索引 Domain 域索引 物理上: Partitioned 分區索引 NonPartitioned 非分區索引 B-tree: Normal 正常型B樹 Rever Key 反轉型B樹 Bitmap 位元影像索引 1)b-tree索引
Time of Update: 2018-07-23
關 鍵 詞: 顯式遊標 當查詢返回結果超過一行時,就需要一個顯式遊標,此時使用者不能使用select into語句。PL/SQL管理隱式遊標,當查詢開始時隱式遊標開啟,查詢結束時隱式遊標自動關閉。顯式遊標在PL/SQL塊的聲明部分聲明,在執行部分 或異常處理部分開啟,取出資料,關閉。 使用遊標 這裡要做一個聲明,我們所說的遊標通常是指顯式遊標,因此從現在起沒有特別指明的情況,我們所說的遊標都是指顯式遊標。要在程式中使用遊標,必須首先聲明遊標。 &
Time of Update: 2018-07-23
/*遊標的for迴圈pl/sql語言提供了遊標的for迴圈語句,【自動執行遊標的open,fetch,close語句和迴圈語句的功能】,當進入迴圈時,遊標for迴圈語句自動開啟遊標,並提取第一行遊標的資料,當程式處理完成當前所提取的資料而進入下一次迴圈時,遊標for迴圈語句自動提取下一行資料供程式處理,當提取完結果集合中的所有資料行結束迴圈,並自動關閉遊標;for index_variable in cursor_name[(value[,value]...)] Loop
Time of Update: 2018-07-23
1.什麼是遊標。 從表中檢索出結果集,從中每次指向一條記錄進行互動的機制。 用來管理從資料來源返回的資料的屬性(結果集)。這些屬性包括並發管理、在結果集中的位置、返回的行數,以及是否能夠在結果集中向前和/或向後移動(可滾動性)。 遊標跟蹤結果集中的位置,並允許對結果集逐行執行多個操作,在這個過程中可能返回至原始表,也可能不返回至原始表。
Time of Update: 2018-07-23
注意:Oracle10g Bug 4612267 補丁聽說是只給特殊使用者提供的O(∩_∩)O哈哈~ 所以還是建議升級到10.2.0.4 Oracle10g Bug 4612267 補丁安裝備忘錄 2009-01-13 14:04 一、bug癥狀和描述 癥狀:
Time of Update: 2018-07-23
1、查詢第幾行的記錄 select sal from emp where rownum=1; //查詢得到第一行記錄 select sal from emp where rownum=5; //不可以查詢到第五行記錄,因為rownum 總是從1開始查詢的,故這種方式不可以直接得到第幾行的記錄。若想得到第五行記錄,應採用如下方式: select r,sal from (select rownum r,sal from emp) where r= 5;
Time of Update: 2018-07-23
多表視圖的定義:當視圖的資料來源只有一張資料表,則該視圖為單表視圖;當視圖的資料來源是多張資料表,則該視圖為多表視圖。 可更新視圖的定義:在絕大多數人的概念中,視圖是唯讀,不允許修改。ORACLE 8i以上版本,單表視圖如果沒有設定With Read Only,則該視圖是可以更新的,對視圖的操作將直接寫入的資料表中。 那麼,如果視圖的資料來源是多張資料表,而多表視圖如果實現可更新視圖,則可以大大提高編碼的效率。 1 前言
Time of Update: 2018-07-23
資料庫的串連應用是每種程式設計語言重要的一個知識點,本文記錄一下在python下如何串連資料庫。 本機環境如下: 系統:windows7 64位 python版本:python2.7 資料庫:oracle 11g 操作步驟:
Time of Update: 2018-07-23
oracle 11g的監聽日誌和警告日誌都是在/u01/oracle/diag/tnslsnr/oracle/listener目錄和/u01/oracle/diag/rdbms/db1/db1目錄下都有以下分別簡稱listener目錄和db1目錄。這兩目錄下都有如下目錄:alert cdump hm incident incpkg ir lck metadata stage