Time of Update: 2018-12-08
伺服器為windows server 2003,正常安裝完oracle用戶端後,插入資料時,發現中文都是?。異常:PLL/SQL中輸入select userenv('LANGUAGE') From Dual,結果為AMERICAN_AMERICA.US7ASCII,註冊表中[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home]下的NLS_LANG為SIMPLIFIED CHINESE_CHINA.ZHS16GBK。解決方案:我的電腦-
Time of Update: 2018-12-08
很多資料轉換處理操作時,會遇到將0.007007040000轉換成0.70%的需求,我們使用Oracle 的SQL 函數 to_char可以實現這種轉換。 這個函數用來將DATE或NUMBER資料類型轉換成可顯示的字串,格式是to_char(number_type, format_mask)。 格式'999.99',9表示對應的某一個指定位元的值,如果是值是0則忽略不顯示,如果指定位元沒有值,則以空格表示。
Time of Update: 2018-12-08
在開發過程中可能會聲明一個含有某張表不具備欄位的遊標,來解決特殊問題,本文將詳細介紹這類問題,需要瞭解更多的朋友可以參考下其中,data.*是一張表,然後把其他表中的欄位也加到sal_data的遊標中 Sql代碼 複製代碼 代碼如下:cursor sal_data(cp_center_temp_id varchar2) is select data.*, post.id emp_post_id, doc.Salary_Tax_Bd sa_tax_bd,
Time of Update: 2018-12-08
Sql代碼 複製代碼 代碼如下:CREATE TABLE test(a VARCHAR2( 20),b VARCHAR2 (20),c NUMBER,d VARCHAR2 (20)) INSERT INTO test VALUES( 'a1','b1' ,1, 't'); INSERT INTO test VALUES( 'a3','b3' ,3, 't'); INSERT INTO test VALUES( 'a4','b4' ,4, 't'); INSERT INTO test
Time of Update: 2018-12-08
公司需要處理一些報表,需要使用百分率,保留2位小數,只用round和trunc函數都可以實現(round(_data,2) ),只是格式不是很工整,對格式要求不嚴謹的情況下使用round即可. 個人認為比較方便的一種 select decode(n_jg,0,'0.00',trim(to_char(n_jg,'9999999.99'))) from tbl 如果只是檢索,可是使用: 1、select trunc(CUR_SUM,2) from data_record;
Time of Update: 2018-12-08
假如Oracle中有兩個使用者A和B,那麼如果A要訪問B擁有的表,語句應該是: 複製代碼 代碼如下:SELECT * FROM B.TABLENAME。 我要問的是,能否通過修改Oracle的設定,將A訪問B擁有表的語也變為跟B使用者登入一樣的語句:SELECT * FROM TABLENAME? 複製代碼 代碼如下:create synonym tablename for B.TABLENAME; 除了一樓的建立同義字外,還要授予A使用者訪問改同意詞的許可權. 複製代碼 代碼如下:drop
Time of Update: 2018-12-08
看PD中,雙擊某個表,查看其preview標籤,然後會發現有某個表的create語句,如下: 複製代碼 代碼如下:create table Company_Info ( Company_ID NVARCHAR2(50) not null, Area_ID NVARCHAR2(50), Mem_ID NVARCHAR2(50), Level_Id NVARCHAR2(50), Name NVARCHAR2(50) not null, Capital NVARCHAR2(50),
Time of Update: 2018-12-08
serveroutput 是sqlplus的配置參數,而不是資料庫的配置參數,修改並儲存sqlplus的配置參數,那麼每次開啟sqlplus時就不用重新設定了。 設定方法如下: 1. sql> set serveroutput on 然後,在sqlplus中 2. sql> store set $ORACLE_HOME/sqlplus/admin/glogin.sql replace 完成儲存設定. 可以通過如下查看設定效果: SQL> show serveroutput;
Time of Update: 2018-12-08
接收contract_no和item_no值,在inventory表中尋找,如果產品: 已發貨,在arrival_date中賦值為今天后的7天 已訂貨,在arrival_date中賦值為今天后的一個月 既無訂貨又無發貨,則在arrival_date中賦值為今天后的兩個月, 並在order表中增加一條新的訂單記錄。 product_status的列值為'shipped'和'ordered' inventory: product_idnumber(6)
Time of Update: 2018-12-08
如何重設oracle 10g SYS 的密碼 安裝完oracle 10g後,竟然將安裝時設定的系統密碼忘記。在同事的協助下通過一下方法解決。 1.oracle的密碼檔案存在於:oracle_home/database/pwd<sid>.ora 2.使用orapwd 重設SYS密碼 C:oracleproduct10.2.0db_1database>orapwd Usage: orapwd file=<fname> password=<password>
Time of Update: 2018-12-08
TO_DATE格式(以時間:2007-11-0213:45:25為例) Year: yytwodigits兩位年顯示值:07 yyythreedigits三位年顯示值:007 yyyyfourdigits四位年顯示值:2007 Month: mmnumber兩位月顯示值:11 monabbreviated字元集表示顯示值:11月,若是英文版,顯示nov monthspelledout字元集表示顯示值:11月,若是英文版,顯示november Day: ddnumber當月第幾天顯示值:02
Time of Update: 2018-12-08
Oracle預存程序基本文法 預存程序 1 CREATE OR REPLACE PROCEDURE 預存程序名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去建立一個叫做skeleton預存程序, 如果存在就覆蓋它; 行2: IS關鍵詞表明後面將跟隨一個PL/SQL體。 行3: BEGIN關鍵詞表明PL/SQL體的開始。 行4: NULL
Time of Update: 2018-12-08
11.2.0.3 資料庫因asm磁碟頭塊損壞宕機,出現錯誤ORA-15196。更詳細的錯誤如下:ORA-15196: invalid ASM block header [kfc.c:26076] [endian_kfbh] [256] [0 != 1]進一步的檢查發現DataGuard同樣損壞.這讓大家陷入不解,為何主庫和備庫會同時損壞?最終經過仔細檢查發現:是SA發現主機上一塊磁碟沒用,在主備都執行了fdisk
Time of Update: 2018-12-08
下面通過一些例子來說明使用Regex來處理一些工作中常見的問題。 1. REGEXP_SUBSTR REGEXP_SUBSTR 函數使用Regex來指定返回串的起點和終點,返回與source_string 字元集中的VARCHAR2 或CLOB 資料相同的字串。 文法: --1.REGEXP_SUBSTR與SUBSTR函數相同,返回截取的子字串 REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]])
Time of Update: 2018-12-08
oracle資料庫的許可權系統分為系統許可權與對象許可權。系統許可權( database system privilege )可以讓使用者執行特定的命令集。例如,create table許可權允許使用者建立表,grant any privilege 許可權允許使用者授予任何系統許可權。對象許可權( database object privilege )可以讓使用者能夠對各個對象進行某些操作。例如delete許可權允許使用者刪除表或視圖的行,select許可權允許使用者通過select從表、視圖、
Time of Update: 2018-12-08
一、建立和管理表 1、建立表文法 create table 表名(column datatype [default expr][,column ...]) default 約束 說明略 2、利用子查詢建立表 create table 表名 as select * from u表 二、修改表 1、添加一個新列 oracle:alter table table_name add(column datatype [default expr][,column datatype]...);
Time of Update: 2018-12-08
複製代碼 代碼如下:create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TITLE VARCHAR2(30), N_COUNT NUMBER ) prompt Disabling triggers for T_NEWS... alter table T_NEWS disable all triggers; prompt Loading T_NEWS... insert into T_NEWS (ID, N_TYPE, N_TITLE,
Time of Update: 2018-12-08
軟體環境: 1、作業系統:Windows 2000 Server 2、數 據 庫:Oracle 8i R2 (8.1.7) for NT 企業版 3、安裝路徑:C:ORACLE 實現方法: 1、 D:>set NLS_LANG=AMERICAN_AMERICA.USACII7 或 D:>set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 D:>set 直接打set命令可以查看環境變數 2、 在D:
Time of Update: 2018-12-08
重複的資料可能有這樣兩種情況,第一種: 表中只有某些欄位一樣,第二種是兩行記錄完全一樣。 一、對於部分欄位重複資料的刪除 1.查詢重複的資料 select 欄位1,欄位2, count(*) from 表名 group by 欄位1,欄位2 having count(*) > 1 例:Select owner from dba_tables group by owner having count(*)>1; Select owner from dba_tables
Time of Update: 2018-12-08
1.不裝入資料庫而啟動案例 可以不裝入資料庫而啟動案例,一般是在資料庫才建立時才可以這樣做: STARTUP NOMOUNT 2.啟動案例並裝入資料庫 使用者可以啟動案例而並裝入資料庫但不開啟資料庫,允許使用者執行特定的維護操作。例如: l 重新命名資料檔案; l 添加、撤消或重新命名重做記錄檔; l 啟動和禁止重做日誌歸檔; l 執行全部的資料庫恢複。 STARTUP MOUNT 3.啟動案例裝入並開啟資料庫