Time of Update: 2017-01-18
大部分情況下,這種動態產生的sql查詢語句寫法如下: 複製代碼 代碼如下:select A表.欄位1,A表.欄位2,B表.欄位返回,C表.欄位返回 from A表 ,B表,C表 [where A表,B表,C表關聯及各自的條件陳述式] 但是這個方法有一個缺點,那就是在動態產生這個查詢語句的商務邏輯程式仍然很複雜。這裡就介紹一個降低商務邏輯複雜度的查詢sql產生方式。其文法結構如下: 複製代碼 代碼如下:select A表.欄位1,A表.欄位2,B表.欄位,C表.欄位 from A表 [where
Time of Update: 2017-01-18
複製代碼 代碼如下:create or replaceFunction GetInvitationNO(prev varchar2, num1 varchar2, num2 varchar2, sessionSetting varchar2)Return Varchar2Authid Current_User Is PRAGMA AUTONOMOUS_TRANSACTION;-- 需要使用“Current_User”的許可權防止無法運行“Execute Immediate”命令 &
Time of Update: 2017-01-18
Oracle 使用權限設定一、許可權分類:系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。實體許可權:某種許可權使用者對其它使用者的表或視圖的存取許可權。(是針對錶或視圖而言的)。二、系統許可權管理:1、系統許可權分類:DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以建立資料庫結構。RESOURCE:擁有Resource許可權的使用者只可以建立實體,不可以建立資料庫結構。CONNECT:擁有Connect許可權的使用者只可以登入Oracle,不可以建立實體,
Time of Update: 2017-01-18
1、pl/sql無法串連原生oracle(ORA 12154:TNS:無法解析指定的串連標識符)解決方案:pl/sql不能安裝在Program Files(x86)檔案夾下,要安裝在Program Files檔案夾下2、pl/sql無法串連遠程oracle(ORA-12514: TNS:
Time of Update: 2017-01-18
一、冷備份1、 冷備份發生在資料庫已經正常關閉的情況下,在進行冷備份之前通常要知道需要進行備份檔案的名稱以及路徑複製代碼 代碼如下:SQL>select name from v$datefile;SQL>select name from v$controlfile;SQL>select member from v$logfile;2、冷備份所需備份的檔案包括以下幾種:所有資料檔案、所有控制檔案、所有聯機REDO LOG
Time of Update: 2017-01-18
朋友問: 有個學校oracle資料庫的編碼是GBK,而且庫裡邊已經有很多生產資料了,現在想改成UTF8的,如果執行了這步操作,會出現哪些問題? 我的回答: 因為utf8的庫中文佔3個byte,gbk佔2個byte,所以會出現用戶端亂碼。 比較穩妥的方案是,再搭建一個oracle環境,設定成utf8編碼,把舊的oracle資料移轉到新的utf8編碼的oracle庫中的環境。 oracle群裡面peter的回答: 官方的方法是建立一個utf8的庫再匯入。
Time of Update: 2017-01-18
一、如果是剛剛刪除,那麼有兩方法:首先用show parameter undo;命令查看當時的資料庫參數undo_retention設定。顯示如下:複製代碼 代碼如下:undo_management string AUTOundo_retention integer 10800undo_suppress_errors boolean FALSEundo_tablespace string&
Time of Update: 2017-01-18
我們在通過http://localhost:1158/em進行登入oracle時,我們忘記密碼時,應該怎麼辦? 運行sqlplus進入輸入密碼介面 使用者名稱輸入: connect as sysdba 密碼:這邊亂輸就可以了 然後進行輸入下面的命令: 修改密碼命令 alter user system identified by 新密碼; 成功後馬上登陸發現登陸不了提示使用者名稱被鎖所以從新進入運行下面代碼解鎖 alter user myuser account unlock;
Time of Update: 2017-01-18
1.oracle server端字元集查詢複製代碼 代碼如下:select userenv('language') from dual;server字元集修改:將資料庫啟動到RESTRICTED模式下做字元集更改:複製代碼 代碼如下:SQL>conn /as sysdbaSQL>shutdown immediate; SQL>startup mountSQL>ALTER SYSTEM ENABLE
Time of Update: 2017-01-18
Oracle查詢結果集,隨機排序複製代碼 代碼如下:select * from table1 order by dbms_random.value();MySQL隨機查詢出一條記錄:複製代碼 代碼如下: -- 下面的查詢語句效率高,不要使用 SELECT * FROM table1 ORDER BY rand() LIMIT 1 來查詢 SELECT * FROM table1 WHERE id=(SELECT id FROM table1 ORDER BY rand() LIMIT
Time of Update: 2017-01-18
添加欄位的文法:alter table tablename add (column datatype [default value][null/not null],….);修改欄位的文法:alter table tablename modify (column datatype [default value][null/not null],….);刪除欄位的文法:alter table tablename drop (column);添加、修改、刪除多列的話,用逗號隔開。使用alter
Time of Update: 2017-01-18
oracle中用comment on命令給表或欄位加以說明,文法如下:複製代碼 代碼如下:COMMENT ON { TABLE [ schema. ] { table | view } | COLUMN [ schema. ] { table. | view. | materialized_view. } column | OPERATOR [ schema. ]
Time of Update: 2017-01-18
一、不能匯出空表的原因1、Oracle11g預設對空表不分配segment,故使用exp匯出Oracle11g資料庫時,空表不會匯出。2、設定deferred_segment_creation 參數為FALSE後,無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令:SQL>alter system set deferred_segment_creation=false;查看:SQL>show parameter
Time of Update: 2017-01-18
直接如題查看當前資料庫模式串連進入資料庫,鍵入以下命令:複製代碼 代碼如下: SQL> archive log list; 可查看當前資料庫的模式,若“資料庫記錄模式 非存檔模式”則有必要進行以下的切換流程。在切換之前,請確保以下參數的設定log_archive_dest_n 參數設定歸檔日誌目標,其中n用數字替換。在Oracle9i中n的範圍是1~5,在Oracle10g中n可以取值1~10。設定方式如下:複製代碼
Time of Update: 2017-01-18
什麼是合并多行字串(連接字串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ------- ------------ -------- ------- -------- COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; COUNTRY CITY -------------------- --------------------
Time of Update: 2017-01-18
一。預存程序的建立和使用 1.建立程式包,並在程式中建立預存程序 create or replace PACKAGE NCS_ICP_TJ AS /*lfx@ncs-cyber.com.cn*/ /* TODO 在此輸入程式包聲明 (類型, 異常錯誤, 方法等) */ /*根據備案主體ID拷貝通過表備案資料到備案暫存資料表,拷貝5張*/ PROCEDURE ICP_PASS_TO_TEMP( v_main_id IN icp_gn_temp_baxx_zt.ztid%TYPE, v_lyd
Time of Update: 2017-01-18
複製代碼 代碼如下:create table A_TEST ( PAYOUT_ITEM_CODE VARCHAR2(30) not null, FORMULA_DET VARCHAR2(1000) ) create table B_TEST ( ELEMENT_ID VARCHAR2(5) not null, NAME VARCHAR2(41) )FORMULA_DET列裡ELEMENT_ID替換成NAME 測試資料如下 複製代碼 代碼如下: insert into a_test
Time of Update: 2017-01-18
添加使用者(隨著使用者的建立,自動產生與使用者同名的schema) CREATE USER "TESTER" PROFILE "DEFAULT" IDENTIFIED BY "TESTER" DEFAULT TABLESPACE "TESTDATA" TEMPORARY TABLESPACE "TESTTEMP" ACCOUNT UNLOCK; 賦權(說實話,這些許可權是開發中使用的許可權,如果使用者生產環境,請自行對於使用者建立相應的系統許可權) 據說生產環境下,只是connect
Time of Update: 2017-01-18
進入sqlplus SQL> set timing on SQL> SQL> select count(*) from comm_human_role; COUNT(*) ---------- 866 Elapsed: 00:00:00.05 以上數字輸出分別是:Hours:Minutes:Seconds.Milliseconds 即用了0.05秒的時間執行,相當於50毫秒。 時間如果是這樣的表示:00: 03: 235.78 總共用的時間為235.78秒,
Time of Update: 2017-01-18
關於oracle