oracle相關筆記

2021-09-11 07:56:28 字數 2700 閱讀 5699

1、安裝oracle問題

(1)、oracle啟動慢問題描述

在虛擬機器上的redhat利用sqlplus /nolog---->connect / as sysdba---->startup啟動oracle很慢和利用lsnrctl start啟動監聽服務很慢,會導致在windows上pl/sql連線很慢或者出現連線超時的問題。

解決辦法:

、注釋掉/ect/resolv.conf中的nameserver那行(原因是:每次連線資料庫,都需要進行dns查詢,但由於dns伺服器不可達(內網),所以等到超時時才返回,導致連線庫慢)。

、監聽服務啟動慢有可能是監聽日誌太大,把監聽日誌listener.log檔案備份再刪除掉即可。具體做法:用find / -name listener.log找到其路徑,進入listener.log上級目錄,執行mv listener.log listener.log_bak進行備份,再執行rm -f listener.log刪除日誌。

(2)、centos7安裝oracle11g r2出錯:

①、不出現圖形化介面

解決辦法:

以root登入,執行xhost + ,然後重新開乙個oracle視窗在 /home/oracle/database目錄下執行./runinstaller

②、在安裝到68%時提示錯誤,例如:

(1)、出現死鎖問題

用dba使用者執行以下語句,可以檢視到被死鎖的語句

select sql_text from v$sql where hash_value in

(select sql_hash_value from v$session where sid in

(select session_id from v$locked_object))

(2)、oracle批量插入表資料指令碼:

例子:

declare

i number;

begin

i := 0;

while i < 100 loop

insert into tb_queue (phone, msg) values (『13557042111』+i,『100測試』);

i := i + 1;

end loop;

commit;

end;

引入:sqlserver批量插入指令碼

declare @i varchar

set @i=0

while @i<10

begin

insert into tb_queue (phone, msg) values (『1891234567』+@i,『優先順序測試』);

set @i=@i+1

end(3)、在已有表新增字段,若字段不存在,則新增,已存在,則不進行操作;刪除字段,若存在字段,則刪除,不存在,則不進行操作。

新增:

-- lf_sysuser表新增frist_login_p1欄位

declare

i***ist integer

;begin

select

count(1

)into i***ist from user_tab_columns

where table_name=upper(

'lf_sysuser'

)and column_name=upper(

'frist_login_p1');

if i***ist =

0then

execute immediate 'alter table lf_sysuser add (frist_login_p1 number(1) default 0 not null)'

;execute immediate 'comment on column lf_sysuser.frist_login_p1 is '

'操作員是否第一次登入,預設0是,1不是''';

endif

;end

;

刪除:

-- lf_sysuser表刪除frist_login_p1欄位

declare

i***ist integer

;begin

select

count(1

)into i***ist from user_tab_columns

where table_name=upper(

'lf_sysuser'

)and column_name=upper(

'frist_login_p1');

if i***ist =

1then

execute immediate 'alter table lf_sysuser drop column frist_login_p1'

;endif;

end;

注意:execute immediate內的sql語句不可以存在分號(;)

Oracle筆記 日期相關

日期字串分隔符 yyyy 年 mm 月 dd 日,當月第幾天 hh24 24小時制 hh 12小時制 mi 分鐘 ss 秒 ddd 當年第幾天 mon 月份,英文縮寫,11月就是nov dy 星期幾,或者day d 返回1 7,對應週日 週六,注意和dy的區別 ww 一年中的第幾周,或者iw q 指...

oracle使用者的管理相關筆記

oracle使用者的管理相關筆記 建立使用者 create user useradmin identified by p123 修改密碼 passwd useradmin 若果修改其他使用者密碼需要具有dba許可權或者擁有alter user的系統許可權 alter user 使用者名稱 ident...

oracle語句相關

巢狀查詢 定義 1 指在乙個外層查詢中包含有另乙個內層查詢。其中外層查詢稱為主查詢,內層查詢稱為子查詢。2 sql 允許多層巢狀,由內而外地進行分析,子查詢的結果作為主查詢的查詢條件 3 子查詢中一般不使用 order by 子句,只能對最終查詢結果進行排序 子查詢 sub query where ...