1. 程式人生 > >oracle資料庫開發的一些經驗積累(一)

oracle資料庫開發的一些經驗積累(一)

1、不安裝Oracle客戶連線Oracle 8的方法

請將以下檔案拷貝到執行檔案所在目錄

一、ODBC動態庫 :

ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc32.dll odbc32gt.dll odbccp32.dll odbccr32.dll odbcint.dll

二、建立EXTRA子目錄,將MSVCRT.DLL檔案拷貝到該子目錄下

EXTRA/MSVCRT.DLL

三、ORACLE動態庫及配置檔案

Tnsnames.ora CORE35O.DLL NASNSNT.DLL NAUNTSNT.DLL NCRNT.DLL Nlnt.dll NLSRTL32.DLL Nnfdnt.dll NNFNNT.DLL NSNT.DLL NTNT.DLL NTTNT.DLL CIW32.DLL Ora73.dll OTRACE73.DLL Sqlnet.ora Sqltnsnt.dll CORE35.DLL

四、PB動態庫

pbvm70.dll pbdwe70.dll Pbo7370.dll PBO8470.DLL pbodb70.dll libjcc.dll


Oracle的客戶端不安裝讓pb連上,我記得以前有帖子的,你可以搜尋一下。
具體步驟。
(1).先在某機器上安裝好客戶端(最好安裝在c盤);
(2).複製此客戶端oracle目錄下的所有檔案作為獨立的oracle安裝檔案;
(3).搜尋登錄檔,找到 HKey_Local_machine/software/oracle,把此專案及分支全部匯出。
(4).打包好你的pb程式,並獨立打包好oracle客戶端和登錄檔匯出檔案。
(5).到乾淨的客戶端,解開兩個包,匯入登錄檔檔案,然後加入路徑支援:
  path=%path%;"c:/Ora817/bin"
這樣處理,應該沒有問題,因為我就是這樣快速處理了幾十個機器。

若不想搞登錄檔,你可以在程式中自己寫登錄檔,構成Oracle客戶端必要的登錄檔支援,至於路徑,手工新增應該不難。

至於Oracle客戶端那些檔案不需要,這個不好說,你可以把那些bin目錄下的所有exe刪除,Oracle Document刪除(7x兆)

至於定義Oracle服務,找到 Ora817/net80/admin/TnsName.ora,參照格式,程式中生成一個也不麻煩。

=======================================================
2、在ORACLE中返回遊標結果集

你需要寫到一個包中:
create or replace package pag_cs_power as

    type c_Type is ref cursor;
 
FUNCTION FUN_CS_GETDICTLIST(
  v_DictIndex in  varchar2) return c_Type;

end pag_cs_power;

函式程式碼:

FUNCTION FUN_CS_GETDICTLIST(
  v_DictIndex in  varchar2) return c_Type
     as
        c_cursor            c_Type;
begin
   open c_cursor for
      select DICTID,DICTNAME FROM SYS_DICT WHERE DICTINDEX = v_DictIndex;
   return c_cursor;
end FUN_CS_GETDICTLIST;
----------------------------------------------------------------------
3、P4機器安裝ORACLE

(1)、將ORACLE安裝軟體拷貝到硬碟。
(2)、將  硬碟目錄檔案/stage/Components/oracle.swd.jre/1.1.7.30/1
/DataFiles/Expanded/jre/win32/bin/symcjit.dll的檔案改名為symcjit.old
(3).再執行SETUP.exe  檔案進行安裝。


-----------------------------------------------------------------------
4、單引號的插入問題

SQL> insert into a values('i''m good');       --兩個''可以表示一個'

SQL> insert into a values('i'||chr(39)||'m good'); --chr(39)代表字元'

SQL> insert into a values('a'||'&'||'b');     

-----------------------------------------------------------------------
5、全資料庫的匯入與匯出

exp username/password full=y file=yourdata.dmp grants=y rows=y
imp username/password full=y ignore=y file=yourdata.dmp grants=y

6、exp與imp的具體用法

exp username/[email protected]_61 full=y file=yourdata.dmp grants=y rows=y
imp username/password full=y ignore=y file=yourdata.dmp grants=y

exp mzbs/[email protected]_61 file = c:/zzzzzzz.dmp grants = y rows = y
imp mzbs/[email protected]_61 file = c:/zzzzzzz.dmp grants = y ignore=y  FULL=Y


(1)

exp引數:
關鍵字   說明(預設)  
----------------------------------------------
USERID   使用者名稱/口令
FULL   匯出整個檔案 (N)
BUFFER   資料緩衝區的大小
OWNER   所有者使用者名稱列表
FILE   輸出檔案 (EXPDAT.DMP)
TABLES   表名列表
COMPRESS  匯入一個範圍 (Y)
RECORDLENGTH  IO 記錄的長度
GRANTS   匯出許可權 (Y)
INCTYPE   增量匯出型別
INDEXES   匯出索引 (Y)
RECORD   跟蹤增量匯出 (Y)
ROWS   匯出資料行 (Y)
PARFILE   引數檔名
CONSTRAINTS  匯出限制 (Y)
CONSISTENT  交叉表一致性
LOG   螢幕輸出的日誌檔案
STATISTICS  分析物件 (ESTIMATE)
DIRECT   直接路徑 (N)
TRIGGERS  匯出觸發器 (Y)
FEEDBACK  顯示每 x 行 (0) 的進度
FILESIZE  各轉儲檔案的最大尺寸
QUERY   選定匯出表子集的子句

imp引數:
關鍵字   說明(預設)  
----------------------------------------------
USERID   使用者名稱/口令
FULL   匯入整個檔案 (N)
BUFFER   資料緩衝區大小
FROMUSER  所有人使用者名稱列表
FILE   輸入檔案 (EXPDAT.DMP)
TOUSER   使用者名稱列表
SHOW   只列出檔案內容 (N)
TABLES   表名列表
IGNORE   忽略建立錯誤 (N)
RECORDLENGTH  IO 記錄的長度
GRANTS   匯入許可權 (Y)
INCTYPE   增量匯入型別
INDEXES   匯入索引 (Y)
COMMIT   提交陣列插入 (N)
ROWS   匯入資料行 (Y)
PARFILE   引數檔名
LOG   螢幕輸出的日誌檔案
CONSTRAINTS  匯入限制 (Y)
DESTROY   覆蓋表空間資料檔案 (N)
INDEXFILE  將表/索引資訊寫入指定的檔案
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
ANALYZE   執行轉儲檔案中的 ANALYZE 語句 (Y)
FEEDBACK  顯示每 x 行 (0) 的進度
TOID_NOVALIDATE  跳過指定型別 id 的校驗
FILESIZE  各轉儲檔案的最大尺寸
RECALCULATE_STATISTICS 重新計算統計值 (N)

(2)

一、建立一個expdata.sql檔案

USERID=RMTAFIS/3       這裡寫你的使用者名稱和密碼
BUFFER=32768
OWNER=RMTAFIS         這裡寫匯出的使用者
FILE=E:/Exp/RMTAFIS.DMP      匯出的檔案,可以是相對路徑
ROWs=Y
GRANTS=Y
COMPRESS=Y
CONSISTENT=Y

二、建立一個expdata.bat
exp parfile=expdata.sql
如果是805
exp80 parfile=expdata.sql
雙擊expdata.bat就匯出資料了


7、如果在like的變數中,是以‘%’開頭的話,是不會使用index的。反之,不是以‘%‘開頭,而又有相應的index,是會使用index的。具體可以用plain plan來看一下。

8、複製空表結構
   create table new_table
as select * from old_table where 1=2;
   複製表(含記錄)
   create table new_table
as select * from old_table ;

9、把一個使用者下的表匯入到另一個使用者下,但需要改名

先用exp匯出所有的表;
用imp將匯出的表匯入到新使用者;
在新使用者下,執行
  select 'RENAME TABLE '||tname||' TO NEW_'||tname||';'
    from tab
   where tabtype='TABLE';
將上面的查詢結果儲存到一個sql檔案中,處理後執行就可以了。


10、審計步驟

 修改引數檔案init.ora,引數audit_trail值為true;
 重新啟動資料庫;
 開啟審計audit session; (audit session by username)
 執行登入操作;
 察看審計結果:
   select * from dba_audit_session;
   select * from sys.aud$;
   select * from dba_audit_trail;
   select * from dba_audit_exists;
 關於審計:

   為了使oracle8i的審計功能可用,必須在資料庫引數檔案中修改audit_trail初始引數,而這個修改並不支配oracle8i把生成的審計記錄記入審計痕跡中,
由於狀態,特權和模式物件已被修改,因而審計的預設值不可用,其引數應設定為none.下面列出了audit_trail 可用的引數

db_使資料庫審計和全部直屬審計記錄到資料庫審計的痕跡中
os_是資料庫審計依據直屬審計記入到作業系統的審計很集中
none_不可用

11、BFILE的用法

(1)、create or replace directory
BFILE_TEST
as
'/oracle/oradata/bfiles';

(2)、grant read on directory BFILE_TEST to SCOTT;

(3)、host ls -l /oracle/oradata/bfiles/1.TXT

(4)、connect SCOTT/TIGER
create table BFILES (ID number, TEXT bfile );

(5)、insert into BFILES values ( 1,
bfilename ( 'BFILE_TEST', '1.TXT' ) );


12、如何在Windows 2000下將Oracle完全解除安裝?
 
一、系統環境:
(1)、作業系統:Windows 2000 Server,機器記憶體128M
(2)、資料庫: Oracle 8i R2 (8.1.6) for NT 企業版
(3)、安裝路徑:D:/ORACLE

二、解除安裝步驟:
(1)、開始->設定->控制面板->管理工具->服務
   停止所有Oracle服務。

(2)、開始->程式->Oracle - OraHome81->Oracle Installation Products->Universal Installer
   卸裝所有Oracle產品

(3)、執行regedit,選擇HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE,按del鍵刪除這個入口。

(4)、執行regedit,選擇HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services,滾動這個列表,刪除所有Oracle入口

(5)、從桌面上、STARTUP(啟動)組、程式選單中,刪除所有有關Oracle的組和圖示

(6)、重新啟動計算機,重起後才能完全刪除Oracle所在目錄

(7)、刪除與Oracle有關的檔案,選擇Oracle所在的預設目錄C:/Oracle,刪除這個入口目錄及所有子目錄,

  並從Windows 2000目錄(一般為C:/WINNT)下刪除以下檔案

  ORACLE.INI、oradim80.INI

(8)、WIN.INI檔案中若有[ORACLE]的標記段,刪除該段

--------------------------------------------------------------------
13、如何使用SQLPLUS和SVRMGRL執行指令碼

(1)、用sqlplus呼叫:

c:/script.txt的內容
startup;

命令列:sqlplus internal/oracle @c:/script.txt

(2)、用svrmgrl呼叫:
c:/script.txt的內容

connect internal/oracle;
startup;

命令列:svrmgrl @c:/script.txt

--------------------------------------------------------------------
14、ORACLE的臨時表

CREATE GLOBAL TEMPORARY TABLE TABLENAME (
   COL1  VARCHAR2(10),
   COL2  NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;
這種臨時表不佔用表空間,而且不同的SESSION之間互相看不到對方的資料
在會話結束後表中的資料自動清空,如果選了DELETE ROWS,則在提交的時候即清空資料,PRESERVE則一直到會話結束

----------------

在Oracle8i中,可以建立以下兩種臨時表:
(1)會話特有的臨時表
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT PRESERVE ROWS;

(2)事務特有的臨時表
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT DELETE ROWS;
  CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的臨時表雖然是存在的,但是你試一下insert 一條記錄然後用別的連線登上去select,記錄是空的,明白了吧,我把下面兩句話再貼一下:
--ON COMMIT DELETE ROWS 說明臨時表是事務指定,每次提交後ORACLE將截斷表(刪除全部行)
--ON COMMIT PRESERVE ROWS 說明臨時表是會話指定,當中斷會話時ORACLE將截斷表。
衝突的問題更本不用考慮.

臨時表只是儲存當前會話(session)用到的資料,資料只在事務或會話期間存在。

通過CREATE GLOBAL TEMPORARY TABLE命令建立一個臨時表,對於事務型別的臨時表,
資料只是在事務期間存在,對於會話型別的臨時表,資料在會話期間存在。

會話的資料對於當前會話私有。每個會話只能看到並修改自己的資料。DML鎖不會加到
臨時表的資料上。下面的語句控制行的存在性。
 
● ON COMMIT DELETE ROWS 表名行只是在事務期間可見
● ON COMMIT PRESERVE ROWS 表名行在整個會話期間可見

可以對臨時表建立索引,檢視,出發器,可以用export和import工具匯入匯出表的
定義,但是不能匯出資料。表的定義對所有的會話可見。

例如:
CREATE GLOBAL TEMPORARY TABLE TEMP_TAB1(
table_name VARCHAR2(20),
primary_key VARCHAR2(100),
field VARCHAR2(1000))
ON COMMIT PRESERVE ROWS;

CREATE GLOBAL TEMPORARY TABLE TEMP_TAB2(
table_name VARCHAR2(20),
primary_key VARCHAR2(100),
field VARCHAR2(1000))
ON COMMIT DELETE ROWS;

15、如何使用OEM
先啟資料庫服務,再啟oracle manager服務。
否則重建檔案資料庫
如果還不行就把ORACLEHOME/NETWORK/sqlnet.ora檔案的內容
     sqlnet.authentication_services=(NTS)
     改成sqlnet.authentication_services=(NONE)

登入 sysman/oem_temp

16、TNS:沒有監聽器的問題。

(1)查一下監聽服務是否啟動,
   如果沒有啟動,則執行lsnrctrl start。
(2)檢視一下 LISTENER.ORA內監聽的伺服器名、伺服器IP、資料庫名是否正確。
(3)檢視一下 TNSNAMES.ORA內伺服器名、伺服器IP、資料庫名是否正確。

17、LINUX、UNIX下自動啟動ORACLE服務

(1)

 !/bin/sh

# chkconfig: 345 51 49
# description: starts the oracle dabase deamons
#

ORA_HOME=/u01/app/oracle/product/8.1.7
ORA_OWNER=oracle
case "$1" in
'start')
echo -n "Starting Oracle8i: "
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle8i
echo
;;

'stop')

echo -n "Shutting down Oracle8i: "
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle8i
echo
;;

'restart')

echo -n "Restarting Oracle8i: "
$0 stop
$0 start
echo
;;

*)
echo "Usage: oracle8i { start | stop | restart }"
exit 1

esac
exit 0

我仿照su - $ORA_OWNER -c $ORA_HOME/bin/dbshut 的形式
新增su - $ORA_OWNER -c $ORA_HOME/bin/lsnrctl start
但是在系統啟動的時候listener啟動不了

(2)

/etc/rc.local
改成如下就可以了
touch /var/lock/subsys/local
#echo 2147483648 > /proc/sys/kernel/shmmax
echo -n "Starting Oracle Database:"
date +"%D %T %a"
su - oracle -c "lsnrctl start"
#su - oracle -c "sqlplus /nolog @startmaster.sql"
echo -n "Oracle Database Started:"
date +"%D %T %a"
-------------
第一個#是改共享記憶體大小的
第二個#是啟動資料庫的。

下載這個軟體包並安裝。

裡面每個檔案都有一些要修改的地方。配置完成之後,就可以在系統服務配置中找到它,選中它就可能以自啟動了。

18、回滾段不夠的處理方法

(1)、先使回滾段離線一個,
如果不好用,則再離線一個。直至好用。
   ALTER rollback segment rollbackname offline;
(2)、增加回滾段資料檔案的大小
   alter database datafile 'datafile' resize 200M;


19、WINNT向WIN2000移植

不用EXP和IMP的

停掉資料庫的服務後,可以做一個數據庫的全備份。

在WIN2000上建一個同名的資料庫,隨便建,越小越好,可以縮短時間。
把WINNT下的資料庫備份恢復到WIN2000的資料庫上就可以了。但建庫的目錄
必須一樣。(也可以不一樣,但需要更改資料檔案的連線)

我曾多次為使用者這樣移植資料,萬無一失的。
注意:因為資料很重要,所以建議你先EXP備份一下。這是我們的習慣。


20、ORACLE SQL PLUS Worksheet亂碼問題。

dbappscfg.properties,修改該檔案即可解決上述問題。$ORACLE_HOME/sysman/config目錄下,修改
# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
為SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。

對於Windows作業系統,還需要修改一項
#SQLPLUS_SYSTEMROOT=c://WINNT40
為SQLPLUS_SYSTEMROOT=C://WINNT

如作業系統的主目錄在C盤的Winnt下

對於後面一項的修改只對Windows作業系統進行,對UNIX作業系統則不需要。如果在Windows作業系統中不修改該項,在Oracle Enterprise Manager中,連線系統時,會提示如下的錯誤:
ORA-12560 TNS:protocol adapter error
或者
ORA-12545 Connect failed because target host or object does not exist
重新連線SQL PLUS Worksheet


21、DROP掉名字是小寫的表(用雙引號括起來)。

    drop table "tablename"
    select * from "tablename"

22、日期的顯示格式
注意:SIMPLIFIED CHINESE(簡體中文需要" "括起來)
      別的國家不用" " 例如:ENGLISH
select to_char(sysdate,'DAY','NLS_DATE_LANGUAGE=''SIMPLIFIED CHINESE''') from dual;
------------
星期四
------------

23、一個從ORACLE中讀表資訊的儲存過程

可以在vc下呼叫儲存過程來實現
例子:
先修改init.ora
例如:
utl_file_dir=/usr    //路徑為 oracle所在的盤:/usr
此過程將使用者TEMP的P1過程的程式碼儲存到ORACLE安裝盤下/USR/TEXT.TXT中
create or replace procedure TEST
is
  file_handle utl_file.file_type;
  STOR_TEXT VARCHAR2(4000);
  N NUMBER;
I NUMBER;
 begin
I:=1;
   SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER='TEMP' AND NAME='P1';
file_handle:=utl_file.fopen('/usr','test.txt','a');
WHILE I<=N LOOP
   SELECT TEXT  INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER='TEMP' AND NAME='P1' AND LINE= I;
   I:=I+1;
   utl_file.put_line(file_handle,stor_text);
END LOOP;
   utl_file.fclose(file_handle);
commit;
end TEST;
/

24、關於修改ORACLE的列寬
(1)、不論如何都要備份資料。
(2)、如果沒有資料,則可以修改寬度。比如NUMBER,CHAR,VARCHAR2
(3)、如果有資料,則可以增加寬度。比如NUMBER,CHAR,VARCHAR2
   注意:不可以減小寬度。
(4)、語法:alter talbe tablename modify columnname columntype not null;

25、如何檢視使用者的儲存過程和函式

select name,text from user_source where name= Procedurename and type = 'PROCEDURE' order by line;

26、在批處理中自動啟動ORACLE服務(win2000)

編一個批處理檔案
net start OracleServiceSID
OracleServiceSID是ORACLE的例項名稱

27、對行加鎖時,只對tb1加鎖

select tb1.r1 from tb1, tb2  where tb1.r2 = tb2.r2 and tb2.r1 = xxx for update of tb1.r1 nowait

28、得到列的資訊

desc tablename
select cname from col where tname='TABLENAME';
select column_name from user_tab_columns where table_name='TABLENAME';
select column_name from ALL_tab_columns where table_name='TABLENAME';
select column_name from dba_tab_columns where table_name='TABLENAME';
select column_name from user_col_comments where table_name='TABLENAME';   
select column_name from all_col_comments where table_name='TABLENAME';
select column_name from dba_col_comments where table_name='TABLENAME';

29、使觸發器無效(login_on)

svrmgrl
connect internal/oracle
alter trigger login_on disable;

使觸發器為無效alter trigger yourtriggername disable

如果是對於某一個表的所有的觸發器:
alter table yourtablename disable all triggers


30、如在SQLPLUS中何呼叫儲存過程和函式。

    call只能呼叫儲存過程後面加上括號就可以了
    call 儲存過程名();
    exec procedurename;(可以不加())
    呼叫函式用sql語句
    select 函式名(引數) from dual;

31、函式中如果呼叫DML語句就不可以呼叫SELECT語句

32、REDO LOG BUFFER 什麼時候寫到REDO LOGFILE中
    (1)、在COMMIT的時候
    (2)、重做日誌緩衝區1/3滿的時候
    (3)、重做日誌緩衝區大於1M的時候
    (4)、它寫資訊必須是在資料寫程序前呼叫
    (5)、一般CHECKPOINT在日誌組切換的時候進行或者由初始化引數設定
         在CHECKPOINT的時候需要呼叫資料寫程序  

33、ORACLE的http server 把原有的WEB server沖掉,如何解決?

    (1).如果你原來的http server是用IIS等其他釋出工具做的,那麼可以在服務中停掉         oracle http server服務,並且改為手動啟動。
    (2).如果原來的http server是用apache釋出,則可以改變http.conf中的引數

34、關於建立重建檢視索引


建立索引:
CREATE INDEX IND_NAME ON TABLE_NAME(COL1,COL2,...);

重建索引:
ALTER INDEX IND_NAME REBUILD;

檢視索引:

SELECT * FROM USER_INDEXES WHERE INDEX_NAME='IND_NAME';

35、ORACLE如何查殺使用者的程序
 
   一|根據使用者的應用程式和SQL語句,在DBA STUDIO找到使用者的SESSION並斷開其連線
 
   二、
  
   (1)、要殺掉一個session應先應知道其sid和serial#,假設你已經知道。
   (2)、select paddr from v$session where sid=v_sid and serial#=v_serial#
   select spid from v$process where addr=paddr(以上語句所查出的);

   (3)、使用ALTER SYSTEM KILL SESSION 'v_sid,v_serial#' immediate; 試一試如不行轉   
  
   三、LINUX和UNIX下
   轉到作業系統下執行:kill -9 spid (以上語句所查出的) 
  
36、ORACLE中檢查表是否被鎖的語句

    SELECT A.OWNER,  
         A.OBJECT_NAME,  
         B.XIDUSN,  
         B.XIDSLOT,  
         B.XIDSQN,  
         B.SESSION_ID,  
         B.ORACLE_USERNAME,  
         B.OS_USER_NAME,  
         B.PROCESS,  
         B.LOCKED_MODE,  
         C.MACHINE,  
         C.STATUS,  
         C.SERVER,  
         C.SID,  
         C.SERIAL#,  
         C.PROGRAM 
    FROM ALL_OBJECTS A,  
         V$LOCKED_OBJECT B,  
         SYS.GV_$SESSION C
   WHERE ( A.OBJECT_ID = B.OBJECT_ID )
     AND (B.PROCESS = C.PROCESS )
   ORDER BY 1,2    
殺掉:alter system kill session 'sid, serial#'
37、ORACLE的登入問題,使用者名稱和密碼。

oem:(ORACLE ENTERPRISE MANAGER)
sysman/oem_temp


38、修改表的列名

Oracle9i:
alter table xxx rename column xx to yy;

Oracle8i & lower version
connect sys/passed;
update col$ set name=xx where obj#=物件id and name = 欄位
(一般不要這樣用,會造成意想不到的結果)
注:最好是刪除再建立新的列


39、把使用者模式物件所在的表空間移到新的表空間
(1). create the new tablesapce
(2). alter user test default tablespace test_data;
(3). alter user test quota unlimited on test_data;
(4). alter table the_table_name move tablespace test_data;
    生成指令碼:
    select 'alter table'||tname||' move tablespace test_date;'
    from tab
   where tabtype='TABLE'
(5). rebuild the indexes;

40、使用OEM備份或者EXP的步驟
 WIN2000下:

(1). 控制面板――>管理工具―― >計算機管理――>本地使用者和組――>使用者――>新建使用者sys和sysman(sys和sysman 的帳號要和登陸資料庫的帳號相同);
(2).控制面板――>管理工具―― >本地安全策略――>本地策略――>使用者權利指派――>
作為批處理作業登陸――>新增sys和sysman兩個帳號。
(3).使用Enterprise Manager配置輔助工具
開始→程式→Oracle - OraHome81→Enterprise Manager→Configuration Assistant
a、使用Configuration Assistant工具來建立一個新的資料檔案庫。

(4).控制面板――>管理工具―― > 服務,檢視OracleOraHome81ManagementServer是否啟動,如果沒有啟動,則手動啟動該服務。
(5).以sysman/oem_temp(default)登陸DBA Studio
(第二個選項:登陸到Oracle Management Server),立即修改密碼為你剛才在NT下建的使用者sysman的密碼。
(6). 以sysman/ *** (bluesky) 從開始→程式→Oracle - OraHome81→Console 登陸到 控制檯。
在 系統→首選項→首選身份證明(我的首選身份設定如下:)
DEFAULT節點:name:sysman
DEFAULT資料庫:name:sys
(7). 在搜尋/新增結點後,以sysman/ *** 登陸到該結點,以sys/ *** as sysdba登陸資料庫(也就是在首選身份設定的結果)。
(8). 在工具→備份管理→嚮導→預定義備份策略(自定義備份策略)→提交備份計劃
(9).從開始→程式→Oracle - OraHome81→Console 登陸到 控制檯,檢視活動(歷史記錄)可以看到你的備份是否成功,如果不成功,可以點選備份看明細。(我第一次也沒成功,後來我修改系統的臨時目錄C:/WINNT/Temp→c:/temp/systmp,重新啟動機器就ok了)

41、如何修改INTERNAL的口令
 
以下是oracle8的8i你可以仿照來做

(1)、進入DOS下

(2)、預設internal密碼檔案在c:/orant/database下,是隱藏屬性,檔名稱與資料庫例項名有關

  如預設ORACLE例項名為ORCL,則internal密碼檔名為pwdorcl.ora

(3)、建立新的internal密碼檔案,起個新名字為pwdora8.ora

  orapwd80 file=pwdora8.ora password=B entries=5     --注:password項一定要用大寫,並且不要用單引號

(4)、拷貝pwdora8.ora檔案到c:/orant/database目錄下

(5)、執行regedit,修改口令檔案指向

(6)、找到HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE項

  定位ORA_ORCL_PWFILE子項,改變其值為c:/orant/database/pwdora8.ora

(7)、關閉ORACLE資料庫,重新啟動

(8)、進入svrmgr30服務程式,測試internal密碼是否更改成功


42、憑證檢索失敗的決絕方法。

原因: 由於Oracle不能應用OS認證而導致憑證檢索失敗
   
解決辦法:
   
    (1).開啟network/admin下的sqlnet.ora
        修改SQLNET.AUTHENTICATION _SERVICES=(NONE)。
   
    (2).啟動Net8 configuration assistant-->選第三項本地網路服務名配置
    -->刪除...(刪除原來的本地網路服務名)

    (3).重複第二步
    -->新增.. (新建本地網路服務名)

    (4).restart oracle
  
    注意:NTS是WinNT的認證方式

43、命令列編譯儲存過程

    ALTER PROCEDURE procedure_name COMPILE;

44、關於如何建立資料庫連結(DBlink)

可以通過建立客戶機資料庫網路服務名的辦法,將伺服器的名字或是IP地址設定為你需要連線的那個機器就行

如果你要在一個應用中連線它,現在做好上步工作,然後按如下處理

建立資料庫連線
CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING 'NetServiceName';
DBaseLinkName  是建立的資料連線名稱
UserName       是可以連線到的使用者名稱
Password        是可以連線到的使用者的密碼
NetServiceName  是可以連線的資料庫網路服務名或是資料庫名

查詢建立資料連線的表例項
Select * From [email protected] DBaseLinkName;

注意:如果在CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING 'NetServiceName';中NetServiceName  是資料庫名修改init.ora中:global_names = true
否則global_names = false
init.ora中:global_names = false
 
45、Object Browser7.0中文版的破解方法

到OBJECT BROWSER的目錄裡,找到DeIsL1.isu檔案,用記事本開啟,看到的是亂碼吧?沒關係,將Stirling Technologies ,Inc 這個字串前面的亂碼去掉(如果有的話),讓後在Stirling之前加一個空格(一定要加的),儲存,退出,重新執行一下看看,雖然還有提示輸入驗證資訊,但是不用管他,直接確定就行。是不是可以用了呢?保證好使。

46、錯誤號ORA-01536:space quota exceeded for table space 'ALCATEL'的解決辦法
    
     三個解決辦法,任你選擇:
    (1) alter user USERNAME quota 100M on TABLESPACENAME;
    (2) alter user USERNAME quota unlimited on TABLESPACENAME;
    (3) grant unlimited tablespace to USERNAME;

47、如何在Oracle中捕獲到SQL語句的全部操作內容

       SELECT osuser, username, sql_text from v$session a, v$sqltext b
       where a.sql_address =b.address order by address, piece;  

48、ORACLE中如何實現自增欄位:

(1)第一種方法
ORACLE一般的做法是同時使用序列和觸發器來生成一個自增欄位.
CREATE SEQUENCE SEQname
 INCREMENT BY  1
 START WITH  1
 MAXVALUE  99999999
/
CREATE TRIGGER TRGname
BEFORE  INSERT  ON table_name
REFERENCING
 NEW AS :NEW
FOR EACH ROW
Begin
   SELECT SEQname.NEXTVAL
     INTO :NEW.FIELDname
     FROM DUAL;
End;

(2)第二種方法:
CREATE OR REPLACE TRIGGER TR1
  BEFORE INSERT ON temp_table
  FOR EACH ROW
declare
com_num NUMBER;
BEGIN
SELECT MAX(ID) INTO COM_NUM FROM TEMP_TABLE;
:NEW.ID:=COM_NUM+1;
END TR1;

49、job的使用:

修改initsid.ora引數
job_queue_processes = 4            8i,9i  (允許同時執行的JOB數)
job_queue_interval = 10            8i 
job_queue_keep_connections=true       8i


DBMS_JOB.SUBMIT(:jobno,//job號
                'your_procedure;',//要執行的過程
                trunc(sysdate)+1/24,//下次執行時間
                'trunc(sysdate)+1/24+1'//每次間隔時間
               );
刪除job:dbms_job.remove(jobno);
修改要執行的操作:dbms_job.what(jobno,what);
修改下次執行時間:dbms_job.next_date(job,next_date);
修改間隔時間:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
啟動job:dbms_job.run(jobno);

注意:修改後一定要COMMIT;


例子:
VARIABLE jobno number;
begin
      DBMS_JOB.SUBMIT(:jobno,
              'Procdemo;',//Procdemo為過程名稱
               SYSDATE, 'SYSDATE + 1/720');
         commit;
end;

50、如何配置mts

修改初始化引數檔案
增加以下內容:
mts_dispatchers = "(protocol=TCP)(disp=2)(con=1000)"
mts_max_dispatchers = 50
mts_servers = 20
mts_max_servers = 50

51、取出一個表的最後一條記錄

select * from (select rownum id,tname.* from tname) a where a.id=(select count(*) from a);

52、重做日誌(Redolog)被刪掉,通過什麼方法才能恢復!

先mount資料庫,然後再目錄下建同名檔案redo01.log、redo02.log、redo03.log
然後執行alter databse clear logfile group n
對於current的group,執行alter databse clear unarchived logfile group n
然後,再open,就ok了

53、Oracle常見服務

幾個主要的:

OracleOraHome81TNSListener     監聽服務
OracleServiceSID               ORACLE服務
OracleOraHome81Agent           智慧代理服務
OracleOraHome81CMan            連線管理服務
OracleOraHome81HTTPServer      APACHE WEB 服務
OracleOraHome81ManagementServer ORACLE 企業管理器服務
OracleOraHome81Names            ORACLE命名服務

剩下的也不常用。

54、ORACLE的熱備份

在不關閉資料庫的時候進行ORACLE的備份。

原理停複雜的,你去找本書看看吧。

舉個簡單的例子:備份表空間USERS

ALTER TABLESPACE USERS BEGIN BACKUP
COPY USERS TABLESPACE 的資料檔案到備份目錄
ALTER TABLESPACE USERS END BACKUP

55、導致索引不起作用的解決辦法

你的問題我剛處理過,是由optimizer_mode引數引起的,該引數的預設值為choose,即為如表有statis則查詢走基於cost的方式,否則走基於rule的方式,因些你可以有以下幾個解決方法。
(1)、簡單的在init<sid>.ora中設optimizer_mode=rule,重起資料庫。
(2)、使用analyze table table_name(索引基表) delete statistics;
(3)、最後一個萬能辦法,將表和索引drop掉,重建。

56、關於資料庫程序的問題。

(1).檢視相關程序在資料庫中的會話
Select a.sid,a.serial#,a.program, a.status ,
substr(a.machine,1,20), a.terminal,b.spid
from v$session a, v$process b
where a.paddr=b.addr
and b.spid = &spid;

(2).檢視資料庫中被鎖住的物件和相關會話
select a.sid,a.serial#,a.username,a.program,
c.owner, c.object_name
from v$session a, v$locked_object b, all_objects c
where a.sid=b.session_id and
c.object_id = b.object_id;

(3).檢視相關會話正在執行的SQL
select sql_text from v$sqlarea where address =
( select sql_address from v$session where sid = &sid );


57、檢視IP地址
select SYS_CONTEXT('USERENV','IP_ADDRESS')  from dual;

58、執行SQLPLUS時不用輸入使用者名稱和密碼,進入之後使用CONNECT
            
        SQLPLUS /NOLOG
        SQL>CONNECT SCOTT/TIGER

59、檢視當前會話

        userenv() 函式

        select userenv('language') from dual 字符集
        select userenv('isdba') from dual 是否DBA
        select userenv('sessionid') from dual sessionid
        select userenv('TERMINAL') from dual 客戶端名字
        select userenv('INSTANCE') from dual 例項數

        SYS_CONTEXT() 函式
    
        select SYS_CONTEXT('USERENV','CURRENT_SCHEMA')  from dual;  當前模式
        select SYS_CONTEXT('USERENV','CURRENT_SCHEMAID')  from dual;  當前模式ID
        select SYS_CONTEXT('USERENV','CURRENT_USER')  from dual; 當前使用者 
        select SYS_CONTEXT('USERENV','DB_NAME')  from dual; 資料庫
        select SYS_CONTEXT('USERENV','HOST')  from dual; 主機
        ..........

60、刪除重複列的方法

(1) DELETE FROM table_name A WHERE ROWID > (
       SELECT min(rowid) FROM table_name B
        WHERE A.key_values = B.key_values);
(2) create table table2 as select distinct * from table1;
     drop table1;
     rename table2 to table1;
(3) Delete from mytable where rowid not in(
       select max(rowid) from mytable
       group by column_name );
(4) delete from mytable t1
      where  exists (select 'x' from my_table t2
                   where t2.key_value1 = t1.key_value1
                     and t2.key_value2 = t1.key_value2
                     ...
                     and t2.rowid > t1.rowid);

61、ORA-12571: TNS:packet writer failure(包寫入程式失敗)

   (1) 這個錯誤在客戶端遇到過,通常重新連線一下伺服器就好了。
   伺服器重新啟動的時候,在client也會遇到該錯誤。
   這個錯誤你是在server還是client上遇到的?最常用的辦法就是加上跟蹤,檢視一下    跟蹤記錄,分析分析錯誤的原因。
   網路問題也會出現該錯誤,比如網路路由沒有配置好。
   (2) 安裝的防毒軟體導致的
   (3) 伺服器端的IP是否被改動
   (4) 最後不行的話,重新建立監聽器
   
62、ORACLE服務不能自動啟動的解決辦法  

   把ORACLEHOME/network/ADMIN/sqlnet.ora
   檔案中的 sqlnet.authentication_service=(nts)
   註釋掉就可以了


63、不完全的時間點恢復

shutdown immediate
copy 備份檔案到需要恢復的目錄下
startup mount
recover database until time '2002-12-26 09:00:00'

alter database open resetlogs

自己仔細檢查一下,不會發生這樣的問題的。

64、oracle如何設定查詢超時

select  /*+  timeout  30*/  *  from  veryLargeTable 

65、修改字符集

(1)、ALTER DATABAE CHARACTER SET SIMPLIFIED CHINESE_CHINA.ZHS16GBK ;

(2)、update props$ set value$='ZHS16CGB231280'
where name='NLS_CHARACTERSET';
update props$ set value$='ZHS16CGB231280'
where  name='NLS_NCHAR_CHARACTERSET';

建議不使用(2)

注意:
(1)、執行ALTER DATABASE CHARACTER SET必須有SYSDBA許可權,並且在STARTUP RESTRICT模式下執行
(2)、原字符集必須是目標字符集的一個真子集(就是浪子所說的只能從WE8ISO8859P1轉到ZHS16GBK的原因)
(3)、CLOB欄位裝換可能有問題,建議在轉換以前把有CLOB欄位的表匯出後DROP,轉換以後再導回
(4)、該轉換不可逆,所以在做這個操作以前建議做資料庫全備份

66、修改資料庫名字

(1)、啟動svrmgrl,以文字方式備份控制檔案
 oracle>svrmgrl
 svrmgrl>connect internal
 svrmgrl>alter system backup controlfile to trace
(2)、編輯產生的跟蹤檔案,在udump目錄下
 改CREATE CONTROLFILE REUSE DATABASE "CTC" NORESETLOGS ARCHIVELOG
 中的REUSE為SET
 然後把create controlfile這段語句拷出
(3)、正常宕庫,後啟動到nomount下
 svrmgrl>shutdown immediate
 svrmgrl>startup nomount
(4)、執行create controlfile那段語句
(5)、開啟資料庫
 svrmgrl>alter database open
 如提示用resetlogs選項則使用
  svrmgrl>alter database open resetlogs
(8)、相應修改初始化引數

67、rownum的用法

   select * from (select t.*,rownum id from dept t)
   where id between 1 and 20


68、oracle的內部引數

   SELECT a.ksppinm NAME,
       b.ksppstdf default_val,
       a.ksppdesc DESCRIPTION
  FROM x$ksppi a,
       x$ksppcv b
 WHERE a.indx=b.indx
   AND substr(a.ksppinm,1,1)='_'
 ORDER BY a.ksppinm

69、9i安裝時報areasqueries錯誤的解決辦法
    包括IAS 和 IDS
   
    把安裝原始檔目錄全部改為英文字母或數字
    注意:不能是中文的路徑

70、我如何知道一個表空間還有多少可以用

(1)、
SELECT upper(f.tablespace_name) 表空間名,
       d.Tot_grootte_Mb "表空間大小(M)",
       d.Tot_grootte_Mb - f.total_bytes "已使用空間(M)",
       round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) "使用比",
       f.total_bytes "空閒空間(M)",
       f.max_bytes "最大塊(M)"
 FROM     
    (SELECT tablespace_name,
            round(SUM(bytes)/(1024*1024),2) total_bytes,
            round(MAX(bytes)/(1024*1024),2) max_bytes
      FROM sys.dba_free_space
     GROUP BY tablespace_name) f,
    (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
      FROM   sys.dba_data_files dd
      GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name   
ORDER BY 4 DESC
(2)、select tablespace_name,round(sum(bytes)/1024/1024,2) "M" from dba_free_space
group by tablespace_name

71、creck pl/sql developer 的方法

(1)、安裝pl/sql developer
(2)、用UltraEdit將程式PLSQLDev.exe開啟
(3)、將UltraEdit設定為16進位制模式
(4)、查詢串:BA 1E 00 00 00 2B D0
   修改:2B D0  為:4A 90
(5)、存檔退出
(6)、執行PLSQLDev.exe,如果提示你還有29天的時間可用,那就恭喜你了!

72、使索引無效

ALTER INDEX idx UNUSABLE;
ALTER INDEX idx_acctno DISABLE;(only to a function based index)

73、在SQLPLUS中給指定使用者進行 set autotrace on/off
   
    以SCOTT使用者為例:

    SQL>CONNECT scott/tiger
   
    connected.
   
    SQL>@$ORACLE_HOME/RDBMS/ADMIN/UTLXPLAN.SQL
   
    Table created.
   
    SQL>CONNECT / AS SYSDBA
   
    connected.
   
    SQL>@$ORACLE_HOME/SQLPLUS/ADMIN/PLUSTRCE.SQL
   
    drop role plustrace;
    Role dropped.
    create role plustrace;
    Role created.
    .
    grant plustrace to dba with admin option;
    Grant succeeded.

    SQL>GRANT PLUSTRACE TO SCOTT;

    Grant succeeded.

    SQL>CONNECT SCOTT/TIGER

    connected.       

    SQL>set autotrace on

    SQL>

74、關於約束的四種狀態

Disabled novalidate:當約束使不能時,約束的規則不能強制在列
       (包含在約束中)的資料之上。但約束的定義儲存在資料字典中。
       在執行資料倉庫捲起(rollup)或裝載且要加快裝載過程時該方式
       是有用的。
Enabled novalidate:是能無效,該狀態的表可以包含非法
      的資料,但不可能加入新的非法資料。
Enabled validate:使能有效,一個使能的約束是強制的,表的資料檢查
      有效

75、在SQLPLUS中呼叫儲存過程

SET SERVEROUTPUT ON
declare
 out_param varchar2(100);
begin
 your_proc(1,out_param);
 dbms_output.put_line(out_param);
end;
/
SET SERVEROUTPUT OFF

75、生成系統表和儲存過程的三個檔案。

     cat*.sql
     dbms*.sql
     utl*.sql

76、JOB中日期的使用

每個月1號:
last_day(sysdate)+1
每個季度的第一天:
to_date(decode(to_char(sysdate,'q'),'1',to_char(sysdate,'yyyy')||'0101',
    '2',to_char(sysdate,'yyyy')||'0401','3',to_char(sysdate,'yyyy')||'0701',
    '4',to_char(sysdate,'yyyy')||'1001'),'yyyymmdd')
每天:
sysdate+1
每個星期幾:
decode(to_char(sysdate,'w'),'1',sysdate+7,
to_char(sysdate,'w'),'2',sysdate+6,to_char(sysdate,'w'),'3',sysdate+5,
to_char(sysdate,'w'),'4',sysdate+4,to_char(sysdate,'w'),'5',sysdate+3,
to_char(sysdate,'w'),'6',sysdate+2,to_char(sysdate,'w'),'7',sysdate+1)

每個星期x下午三點:interval(21, 'next_day(trunc(sysdate),x+1)+15/24');

每個季度的第一個星期x:
interval(21, 'next_day(trunc(sysdate,''Q''),3),5)');


77、使用execute immediate 的問題

8i以上才支援execute immediate
8.05只能用dbms_sql 
最好使用execute immediate


78、ORACLE9i中刪除表空間中資料檔案的方法
 
drop tablespace tbsname including contents

79、找出串中的數字

SELECT TRANSLATE('2KRW229',
   '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789')
   "Translate example"
     FROM DUAL
/

2229

--全是數字的:
select * from 你的表 where translate(你的列,'0123456789',' ')='';

select * from 你的表 where trim(ltrim(rtrim(replace(col_name,'0123456789',' ')))) is null

80、分析表
analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;


81、表空間管理和使用者管理

--查看錶空間和資料檔案

select file_name,tablespace_name,autoextensible from dba_data_files;

--資料表空間

CREATE TABLESPACE USER_DATA
    LOGGING
    DATAFILE 'D:/ORACLE/ORADATA/ORCL/test.DBF' SIZE 50m REUSE ,
             'c:/USERS01112.DBF' SIZE 50m REUSE 
    AUTOEXTEND
    ON NEXT  1280K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL

--臨時表空間

CREATE TEMPORARY
    TABLESPACE  USER_DATA_TEMP TEMPFILE 'D:/TEMP0111.DBF'
    SIZE 50M REUSE AUTOEXTEND
    ON NEXT  1024K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL UNIFORM
    SIZE 1024K


--增加資料檔案

ALTER TABLESPACE  USER_DATA
  ADD DATAFILE 'c:/USERS01113.DBF' SIZE 50M;

ALTER TABLESPACE USER_DATA
  ADD DATAFILE 'c:/USERS01114.DBF'  SIZE 50M
  AUTOEXTEND ON
;


--刪除表空間

DROP TABLESPACE USER_DATA INCLUDING CONTENTS;


--修改資料檔案大小
 ALTER DATABASE
 DATAFILE 'c:/USERS01113.DBF' RESIZE 40M;

--建立使用者、賦予許可權

CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY  USER_DATA
    DEFAULT
    TABLESPACE USER_DATA  TEMPORARY
    TABLESPACE USER_DATA  ACCOUNT UNLOCK;
 
GRANT CONNECT TO USER_DATA;
GRANT RESOURCE TO USER_DATA;

--把表移到另一個表空間
ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

--建立索引

CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME);

CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

--重新建立索引

ALTER INDEX INDEXNAME REBUILD TABLESPACE  TABLESPACE;


--建立表

CREAE TABLE TABLENAME
(COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)
(COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);


--建表的索引儲存分配


CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX  STORAGE(INITIAL 100K NEXT 100K)
TABLESPACE indx,
last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,
dept_id NUMBER(7))
TABLESPACE data;


--建立主鍵

ALTER TABLE TABLENAME
ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)


--使約束無效

ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT CONSTRANAME;

ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT CONSTRANAME;

--刪除約束

ALTER TABLE TABLENAME  DROP CONSTRAINT constraintname;

DROP TABLE TABLENAEM CASCADE CONSTRAINTS;(刪除表後將所用的外來鍵刪除)

--給表增加列

ALTER TABLE TABLENAME
ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

--給列增加預設值

ALTER TABLE TABLENAME
MODIFY COLUMNNAME  DEFAULT(VALUE) NOT NULL;


--給表增加外來鍵
 ALTER TABLE  TABLENAME
 ADD CONSTRAINT  CONSTRAINTNAME
 FOREIGN KEY(COLUMN) REFERENCES TABLE1NAME(COLUMN1);

相關推薦

oracle資料庫開發一些經驗積累

1、不安裝Oracle客戶連線Oracle 8的方法 請將以下檔案拷貝到執行檔案所在目錄 一、ODBC動態庫 :ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc32.dll odbc32gt.dll odbccp32.dll odbccr3

關於啟用 HTTPS 的一些經驗分享

提醒:本文最後更新於 1083 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 隨著國內網路環境的持續惡化,各種篡改和劫持層出不窮,越來越多的網站選擇了全站 HTTPS。就在今天,免費提供證書服務的 Let's Encrypt 專案也正式開放,HTTPS 很快就會成為 WEB 必選項。HTT

Oracle資料庫常用系統表總結

1、user_tables:查詢本使用者底下所有的表資訊:包括:表名、表空間等資訊 2、user_tab_comments:主要是查詢本使用者下的所有的表的資訊,包括: TABLE_NAME—表名 TABLE_TYPE—表類別:表(TABLE)還是檢視(VIEW)

java_web項目開發經驗總結

從數據 簡單 處理 開發 事務 傳輸 記錄 承載 基礎上   web項目就像一個動態的記事本,功能很強大,你最初的項目功能調研越給力,項目所能發揮的作用也就越給力。這是因為web網絡的強聯系性,大家都可以通過訪問到自己想要訪問的頁面,頁面裏既可以承載信息,也可以承載做事情的

Oracle一些基本概念

1、超鍵、候選鍵、主鍵、外來鍵 ☆超鍵(superkey):在關係中能唯一標識元組的屬性集,在一個關係型資料表中,超鍵可以有多個,一個屬性可以被稱為超鍵,多個屬性集也可以被稱為超鍵 (超鍵包含主鍵和候選鍵)。 ☆候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵,就是去掉任何一個屬性都不

項目優化經驗分享數據自己主動匹配

als 主動 options option reg shee total tomat 功能 從今天開始。我將和大家分享一下近期經手項目的優化經驗。今天我們分享的內容是:自己主動匹配! 引言: 輸入框數據自己主動匹配大家應該非常熟悉,當我們在使用百度或go

HDMI調試經驗分享—— 基於KC705的example實現

alt 如果 追蹤 分享 生成 必須 還需要 pro 註意 在KC705的平臺上,實現HDMI的example有兩個,xapp1287,xapp1291。其中1291偏復雜。 因為我沒有HDCP的license,使用xapp1287的tcl生成

基於MVC4+EasyUI的Web開發框架經驗總結5--使用HTML編輯控件CKEditor和CKFinder

err config 兩個 腳本 web開發 upload asp 正常 初始 http://www.cnblogs.com/wuhuacong/p/3780356.html Web開發上有很多HTML的編輯控件,如CKEditor、kindeditor等等,很多都做的很

基於MVC4+EasyUI的Web開發框架經驗總結2- 使用EasyUI的樹控件構建Web界面

set 應用 get ember trim ase str zab ble http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少時間在重構和進一步提煉我的Web開發框架上,力求在用戶體驗和界面設計方面,和Winfor

基於MVC4+EasyUI的Web開發框架經驗總結6--在頁面中應用下拉列表的處理

ica new web開發 don ext images 如果 bob 獲取 http://www.cnblogs.com/wuhuacong/p/3840321.html 在很多Web界面中,我們都可以看到很多下拉列表的元素,有些是固定的,有些是動態的;有些是字典內容,

基於MVC4+EasyUI的Web開發框架經驗總結8--實現Office文檔的預覽

討論 off info code .cn viewer 存在 nco app http://www.cnblogs.com/wuhuacong/p/3871991.html 基於MVC4+EasyUI的Web開發框架經驗總結(8)--實現Office文檔的預覽

我的IT夢——web前端開發之HTML,CSS

jpg 標記語言 方便 add body 前端 input cti 列表 HTML HTML全稱HyperText Markup Language(超文本標記語言) 標簽成對出現 <!DOCTYPE html> 文檔類型定義 < > 標

用ASP.NET Web API技術開發HTTP接口

ble 身份驗證 刪除 發現 bapi try prot 好用 get 開發工具 Visual Studio 2013 SQL Server 2008 R2 準備工作 啟動Visual Studio 2013,新建一個ASP.NET Web應用程序,命名為SimpleAPI

前端開發入門學習筆記

type red 學習 lin attach black 復合 等於 round HTML:超文本標記語言。 html:是一個基礎結構。 CSS:就是跟網頁做裝修的,修飾HTML的基礎內容:樣式。 JavaScript:一個網頁的行為,動作,動態的東西。 html標準文件格

基於Metronic的Bootstrap開發框架經驗總結17-- 使用 summernote插件實現HTML文檔的編輯和圖片插入操作

系統 cat 寫入 視頻 編寫 查看 absolute upload form 在很多場合,我們需要在線編輯HTML內容,然後在頁面上或者其他終端上(如小程序、APP應用等)顯示,編輯HTML內容的插件有很多,本篇介紹基於Bootstrap的 summernote插件實現H

基於Metronic的Bootstrap開發框架經驗總結18-- 在代碼生成工具Database2Sharp中集成對Bootstrap-table插件的分頁及排序支持

關註 基礎 表頭 數據 database 一定的 處理 tree的使用 適合 在我們開發系統界面,包括Web和Winform的都一樣,主要的界面就是列表展示主界面,編輯查看界面,以及一些輔助性的如導入界面,選擇界面等,其中列表展示主界面是綜合性的數據展示界面,一般往往需要對

前端開發規範手冊:基本原則

name ges rop scrip 有效 object sel 代碼 charset 1、結構、樣式、行為分離 盡量確保文檔和模版只包含HTML結構,樣式都放到樣式表中,行為都放到腳本裏。 2、縮進 統一兩個空格縮進(總之縮進統一即可),不要使用Tab鍵或者Tab

崔華基於oracle的SQL優化讀書筆記如何得到真實的執行計劃

hash mes getting binary oracl only 中文 fun roc ---恢復內容開始--- 得到目標SQL的執行計劃,大致有以下四種方式: 1.explain plan 命令 2.DBMS_XPLAN包 3.SQLPLUS中的autotrace開關

微信小程序開發學習--組件

服務器 -1 bind 彈窗 check mda slide section logs 1、form表單 小程序中的form表單與h5相似,能夠將表單內的<switch/> <input/> <checkbox/> <slider/

python-接口開發flask模塊工具類準備

update date lose code def let mit pip clas 我們常常聽說測試http接口、測試java接口,測試socket接口等等;那麽python這麽強大的語言當然也可以用來開發接口了。 flask模塊介紹: python中用來開發接口的模塊: