達夢7入門技術總結--DCA級別

来源:https://www.cnblogs.com/lc1217/archive/2019/12/03/11975266.html
-Advertisement-
Play Games

說明: 1)該實驗所有過程均是本人親自敲命令完成,所有代碼運行正確 2)安裝過程使用的是suse11 sp3操作系統,後續的實驗過程換成了麒麟中標,因此部分路徑可能存在差異 3)安裝過程使用了命令行安裝,圖形界面簡單,因此本文沒有介紹 4)job部分命令行操作太繁瑣,建議使用圖形界面操作,因此本文也 ...


說明:

1)該實驗所有過程均是本人親自敲命令完成,所有代碼運行正確

2)安裝過程使用的是suse11 sp3操作系統,後續的實驗過程換成了麒麟中標,因此部分路徑可能存在差異

3)安裝過程使用了命令行安裝,圖形界面簡單,因此本文沒有介紹

4)job部分命令行操作太繁瑣,建議使用圖形界面操作,因此本文也跳過了此內容

 

正文

1. 安裝
1.1 創建安裝用戶組
#groupadd dinstall

1.2 創建安裝用戶
#useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

#useradd -g dinstall dmdba

1.3 初始化用戶密碼
#passwd dmdba

1.4 修改系統限制
#vi /etc/security/limits.conf
dmdba soft nofile 4096
dmdba hard nofile 65536

1.5 掛載鏡像文件
#mkdir /dmdb
#mount -t iso9660 -o loop /root/dm7_setup_rh6_64_ent_7.6.0.197_20190917.iso /dmdb

1.6 更改許可權
#chown dmdba.dinstall -R /dmdb
#chmod 755 -R /dmdb

1.7 修改環境變數
#su - dmdba
#vi .bashrc
export DM_HOME=/home/dmdba/dmdbms
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH

1.8 採用命令行模式安裝
#su - dmdba
#cd /dmdb
#./DMInstall.bin -i
1)Please select the installer's language (E/e:English C/c:Chinese) [E/e]:e
2)Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n
3)Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y
4)Please Select the TimeZone [21]:21
5)Installation Type:
1 Typical
2 Server
3 Client
4 Custom
Please Input the number of the Installation Type [1 Typical]:1
6)Please Input the install path [/home/dmdba/dmdbms]:
7)Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:y
8)Confirm to Install? (Y/y:Yes N/n:No):y
9)Please execute the commands by root:
/home/dmdba/dmdbms/script/root/root_installer.sh

1.9 初始化數據
#/home/dmdba/dmdbms/bin
#./dminit
input system dir: /home/dmdba/dmdbms
input db name: dmdb01
input port num: 5236
input page size(4, 8, 16, 32): 8
input extent size(16, 32): 16
input sec priv mode(0, 1): 0
input time zone(-12:59,+14:00): +08:00
string case sensitive? ([Y]es, [N]o): n
which charset to use? (0[GB18030], 1[UTF-8], 2[EUC-KR]): 1
length in char? ([Y]es, [N]o): y
enable database encrypt? ([Y]es, [N]o): n
page check mode? (0/1/2): 0
input elog path: /home/dmdba/dmdbms/log
auto_overwrite mode? (0/1/2): 2

1.10 啟動資料庫服務
#cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p dmdb01 -i /home/dmdba/dmdbms/dmdb01/dm.ini
提示信息:
Move the service script file(/home/dmdba/dmdbms/bin/DmServicedmdb01 to /etc/init.d/DmServicedmdb01)
insserv: warning: current stop runlevel(s) (empty) of script `DmServicedmdb01' overwrites defaults (2 3 4 5).
insserv: Service network is missed in the runlevels 4 to use service mysql
DmServicedmdb01 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Finished to create the service (DmServicedmdb01)

#service DmServicedmdb01 start

1.11 連接驗證(預設密碼)
#/home/dmdba/dmdbms/bin/disql
username:sysdba
password:SYSDBA

2.通過vnc調出管理工具
#xhost +
#su - dmdba
#export DISPLAY=127.0.0.1:1.0
#/home/dmdba/dmdbms/tool/manager


3.修改參數(v$parameter)
3.1 參數類型
0 Sys/session 動態參數,同時修改記憶體和配置文件
1 Read only 在資料庫運行狀態時,不能修改。
2 In file 靜態參數,修改後,重啟服務生效。

示例:
SQL> Select para_name,para_value from v$dm_ini where para_name='BUFFER_POOLS';
LINEID para_name para_value
---------- ------------ ----------
1 BUFFER_POOLS 3

3.2 命令
SP_PARA_SET_VALUE(SCOPE,PARA_NAME,PARA_VALUE);

SCOPE值:
1: 修改配置文件和記憶體
2:只修改配置文件

示例:
SQL> SP_SET_PARA_VALUE(2,’BUFFER’,1000);

4.重做日誌
4.1 視圖
v$rlogfile
v$rlog

SQL> select * from v$rlogfile;
說明:這裡查出來的rlog_size大小單位是bit,因此再下麵添加日誌大小的時候需要除以兩次1024轉成M

4.2 添加日誌文件
SQL> alter database add logfile '/home/dmdba/dmdbms/dmdb01/dmdb0103.log' size 256;
說明:預設單位是M,不需要加單位。並且需要和原來的日誌文件大小一致

4.3 修改日誌文件大小
SQL> alter database resize logfile '/home/dmdba/dmdbms/dmdb01/dmdb0103.log' to 300;
說明:所有的日誌文件要大小一致

5.表空間
5.1視圖
dba_tablespaces
v$tablespace
v$huge_tablespace

5.2 表空間說明
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces;

System表空間: 數據字典和全局的系統數據。
ROLL表空間:存放了資料庫運行過程中產生的回滾記錄。
TEMP表空間:臨時表空間。
MAIN表空間:資料庫預設的表空間,創建數據對象時,如果不指定存儲位置,預設存放到該表空間。
HMAIN表空間:huge 表空間

5.3 查詢所有表空間信息
SQL> Select name from v$tablespace union select name from v$huge_tablespace;

5.4 創建表空間
表空間初始文件大小是頁大小的4096倍

示例1:表空間初始大小50M,每次擴展1M,最大100M
SQL> create tablespace tbs1 datafile '/dm7/data/dm01/tbs01.dbf' size 50 autoextend on next 1 maxsize 100;

示例2:表空間初始50M,表空間由2個數據文件組成,分別存儲到不同的磁碟上,每次擴展1m,每個數據文件最大100M.
SQL> create tablespace tbs2 datafile '/dm7/data/dm01/tbs02_1.dbf' size 50 autoextend on next 1 maxsize 100,'/dm7/data/tbs02_2.dbf' size 50 autoextend on next 1 maxsize 100;

5.5 維護表空間
最常用的方式就是增加數據文件
SQL> alter tablespace tbs2 add datafile '/dm7/data/dm01/tbs02_3.dbf' size 50 autoextend on next 1 maxsize 100;

5.6 更換文件存儲位置
註意:SYSTEM,ROLL, TEMP 不能offline;
SQL> alter tablespace tbs2 offline;
SQL> alter tablespace tbs2 rename datafile '/dm7/data/tbs02_2.dbf' to '/dm7/data/dm01/tbs02_2.dbf';
SQL> alter tablespace tbs2 online;

5.7 刪除表空間
SQL> drop tablespace tbs2;
如果表空間存有數據,不允許直接刪除!

6.用戶管理
6.1 視圖
dba_users

6.2 內置用戶
sys --- 達夢資料庫的內置管理用戶,不能登錄資料庫,資料庫使用的大部分的數據字典和動態性能視圖
Sysdba --- 資料庫的管理員
Sysauditor --- 審計用戶
Syssso --- 安全用戶
sysdbo --- 數據操作員(安全版有,四權分立)

6.3 命名規則
字母開頭,a-z,0-9,$#_

6.4 口令策略
用戶密碼最長為48個位元組,創建用戶語句使用 password policy 子句來指定口令策略(DM.INI PWD_POLICY).
系統支持的口令策略:
   0 無策略
   1 禁止與用戶名相同
   2 口令長度不小於9
   4 至少包含一個大寫字母(A-Z)
  8 至少包含一個數字(0-9)
 16 至少包含一個標點符號(英文狀態輸入,除”和空格外)
口令可以單獨使用,也可以組合使用,比如需要應策略1和2,則設置口令策略為:3
密碼嘗試登錄次數 FAILED_LOGIN_ATTEMPS
密碼失敗鎖定時間 PASSWORD_LOCK_TIME
密碼過期時間 PASSWORD_LIFE_TIME



6.5 用戶許可權
系統許可權: create drop alter 能夠對資料庫做什麼操作。
對象許可權(表,視圖,過程等等): select delete update insert
角色: dba、public等

6.6 查看用戶許可權:
SQL> select grantee,granted_role from dba_role_privs where grantee='USER1';

行號 GRANTEE GRANTED_ROLE
---------- ------- ------------
1 USER1 PUBLIC

6.7 查看角色擁有的許可權
SQL> select grantee,privilege from dba_sys_privs where grantee='PUBLIC';
行號 GRANTEE PRIVILEGE
---------- ------- ----------------
1 PUBLIC INSERT TABLE
2 PUBLIC UPDATE TABLE
3 PUBLIC DELETE TABLE
4 PUBLIC SELECT TABLE
5 PUBLIC REFERENCES TABLE
6 PUBLIC GRANT TABLE
.....

6.8 示例

示例1:為資料庫設置一個用戶,該用戶可以創建自己的表,有屬於自己的獨立表空間,用戶密碼要求每60天變更一次。
SQL> create tablespace tbs3 datafile '/dm7/data/dm01/tbs03.dbf' size 32;
SQL> create user user1 identified by user1user1 limit password_life_time 60 default tablespace tbs3;

示例2:創建一個用戶,該用戶每60天變更一次密碼,密碼嘗試連接2次失敗,賬戶鎖定5分鐘,用戶還可以查詢dmhr.employee表
SQL> create user user2 identified by user2user2 limit password_life_time 60, FAILED_LOGIN_ATTEMPS 2 ,PASSWORD_LOCK_TIME 5 default tablespace tbs3;
SQL> grant select on dmhr.employee to user2;

示例3:企業招聘一批錄入人員,許可權是固定的,只有錄入CITY表的許可權
角色:一類許可權的集合
SQL> create role role1;
SQL> grant insert on dmhr.city to role1;
SQL> grant references any table to role1;
SQL> grant role1 to user2;

6.9 用戶維護

1)撤銷許可權
SQL> revoke select on dmhr.employee from user2;

2)解鎖用戶
SQL> alter user user2 account unlock;

3)修改密碼
SQL> alter user user2 identified by user3user3;

4)刪除用戶
SQL> drop user user2;

5)刪除用戶(級聯刪除)
SQL> drop user user2 cascade;

7.dmsql
說明:由於SQL查詢內容比較複雜,並且作為數據管理型DBA SQL開發也不是重點,所以這裡只總結了大概內容。
7.1 常識
dmsql主要基於sql92,部分sql99
SQL:結構化查詢語言
DDL: 定義 create drop alter truncate
DML: 管理 select update delete insert
DCL:控制 grant revoke
TCL:事務控制:commit rollback

7.2 select
簡單查詢:select () from ();
過濾查詢:select () from () where ();
多錶鏈接:select() from () join() on();
分組查詢:select 聚合函數() from () group by () having ();
子查詢:

7.3 insert into

7.4 delete

7.5 update

8.表的管理
8.1 達夢資料庫支持的表
索引組織表(預設的表)、堆表、臨時表、分區表、外部表等。

8.2 創建表時包含的內容
命名:字母開頭 a-z,0-9,$#_
 數據類型:int char varchar date clob blob number等等。
 存儲位置:自已的規劃的表空間。
 約束(5大約束): 非空約束,唯一約束,主鍵,檢查,外鍵
 註釋:comment
 遵循3範式

8.3 示例
1)要求
表名:STU
學號(id char(10)),
姓名(sname varchar(20) not null),
性別 (sex char(1))
年齡(age int)
電話(tel varchar(15) not null)
家庭住址:(address varchar(50))
表空間:TBS2
約束:主鍵列---學號 非空---姓名,電話
備註:學員信息表

2)SQL語句
create table USER2.STU
(
ID CHAR(10) not null ,
SNAME VARCHAR(20) not null ,
SEX CHAR(1),
AGE INT,
TEL VARCHAR(15) not null ,
ADDRESS VARCHAR(50),
primary key(ID)
) storage (on TBS2);
comment on table USER2.STU is '學員信息表';
comment on column USER2.STU.ID is '學號';
comment on column USER2.STU.SNAME is '姓名';
comment on column USER2.STU.SEX is '性別';
comment on column USER2.STU.AGE is '年齡';
comment on column USER2.STU.TEL is '電話';
comment on column USER2.STU.ADDRESS is '家庭住址';

8.4 查看表結構
註意:用戶名、表名都要大寫
SQL> sp_tabledef('USER2','STU');

行號 COLUMN_VALUE
---------- -------------------------------------------------------------------
1 CREATE TABLE "USER2"."STU" (
"ID" CHAR(10) NOT NULL,
"SNAME" VARCHAR(20) NOT NULL,
"SEX" CHAR(1), "AGE" INT,
"TEL" VARCHAR(15) NOT NULL,
"ADDRESS" VARCHAR(50),
CLUSTER PRIMARY KEY("ID"))
STORAGE(ON "TBS2", CLUSTERBTR) ;

或者:
SQL> select dbms_metadata.get_ddl('TABLE','STU','USER2');

8.5 查看表所屬表空間
SQL> select table_name,tablespace_name from dba_tables where table_name='STU';
行號 TABLE_NAME TABLESPACE_NAME
---------- ---------- ---------------
1 STU TBS2

8.6 查看表有哪些約束
SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name='STU';
行號 TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
---------- ---------- --------------- ---------------
1 STU CONS134218774 P


8.7 創建表時指定約束
1)非空約束
SQL> create table user2.t1(id int);
SQL> alter table user2.t1 modify id int not null;
或者:
SQL> create table user2.t2(id int not null);

2)唯一約束
SQL> create table user2.t3(id int unique);

3)主鍵約束
SQL> create table user2.t4(id int primary key);

4)檢查約束
SQL> create table user2.t5(id int check(id>=5));

5)外鍵約束
SQL> create table user2.t6(id int primary key ,sid int foreign key references user2.t4(id));
說明:作為外鍵約束的列必須是另外一個表的主鍵

8.8 表的註釋
SQL> comment on column user2.t1.id is '編號';

8.9 導入數據到表中
1)編寫a.sql腳本:
insert into user2.t1(id) values(1);
insert into user2.t1(id) values(2);
insert into user2.t1(id) values(3);
insert into user2.t1(id) values(4);
commit;

2)然後:
SQL> start /tmp/a.sql

3)也可以用圖形界面的DTS工具去做。

8.10 維護表
1)重命名
SQL> alter table user2.t6 rename to tt6;

2)增加刪除列
SQL> alter table user2.tt6 add name varchar(10);
SQL> alter table user2.tt6 drop name;

3)啟用禁用約束
SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name='T4';
行號 TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
---------- ---------- --------------- ---------------
1 T4 CONS134218776 P

SQL> alter table user2.t4 disable constraint CONS134218776;
SQL> alter table user2.t4 enable constraint CONS134218776;

9.視圖管理
9.1 視圖分類
簡單視圖,複雜視圖,物化視圖
註:簡單視圖和複雜視圖不占磁碟空間
物化視圖占磁碟空間

9.2 創建視圖
create view () as select () from () where ();

SQL> create view v1 as select * from user2.t1;
SQL> select * from v1;

行號 ID
---------- -----------
1 1
2 2
3 3
4 4

9.3 查看視圖
SQL> select view_name,text from dba_views where view_name='V1';

行號 VIEW_NAME TEXT
---------- --------- ---------------------------------
1 V1 SELECT USER2.T1.ID FROM USER2.T1


9.4 修改視圖
SQL> create or replace view v1 as select * from user2.t2;
SQL> select * from v1;
未選定行

10.序列管理
10.1 創建序列
SQL> create sequence user2.s1
start with 1 ----序號起始
increment by 1 --自增多少
maxvalue 50 ---最大值
nocache ---是否緩存
nocycle; ---是否迴圈

10.2 序列的應用
SQL> insert into user2.t1 values(user2.s1.nextval);
SQL> insert into user2.t1 values(user2.s1.nextval);
向表中插入兩條記錄。

SQL> select * from user2.t1;

行號 ID
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2

6 rows got


11.同義詞管理
11.1 創建同義詞
公共:SQL> create public synonym ss1 for dmhr.employee;
普通:SQL> create synonym ss2 for dmhr.employee;

SQL> select count(*) from ss1;

行號 COUNT(*)
---------- --------------------
1 856

11.2 修改同義詞
SQL> create or replace synonym ss2 for dmhr.city;

11.3 刪除同義詞
SQL> drop synonym ss2;
SQL> drop public synonym ss1;

12.索引管理
12.1 達夢支持的索引
二級索引、點陣圖索引、唯一索引、複合索引、函數索引、分區索引等。
預設的表是索引組織表,是利用rowid創建一個預設的索引,所以創建的索引稱為二級索引。

12.2 查看表的索引
SQL> select table_name,index_name from dba_indexes where table_name='T1';
行號 TABLE_NAME INDEX_NAME
---------- ---------- -------------
1 T1 INDEX33555470

12.3 索引的作用
加快表的查詢,對資料庫做DML操作的時候,資料庫會自動維護索引。索引是一棵倒置的樹,使用索引,就是對這棵索引樹做遍歷。

12.4 建立索引的規則

1)適合建立索引的情況
經常查詢的列
接條件列
謂詞經常出現的列(where)
查詢是返回表的一小部分數據

2)不適合做索引的情況:
列上有大量的null
列上的數據有限(例如性別)

12.5 創建索引
規劃索引表空間
表的數據是無序的,索引的數據是有序的

示例:在Emp中的employee_id 建立索引。
1)建立表
SQL> create table user2.emp as select * from dmhr.employee;
2)建立索引表空間
SQL> create tablespace tbs_idx1 datafile '/dm7/data/dm01/tbs_idx101.dbf' size 32;
3)建立索引:
SQL> create index ind_emp on user2.emp(employee_id) tablespace tbs_idx1;
4)查詢索引:
SQL> select table_name,index_name from dba_indexes where table_name='EMP';

行號 TABLE_NAME INDEX_NAME
---------- ---------- -------------
1 EMP INDEX33555479
2 EMP IND_EMP

12.6 重建索引
SQL> alter index user2.IND_EMP rebuild;

13.備份還原
13.1 備份分類
物理備份、邏輯備份

13.2 物理備份
1)工具簡介
冷備:(dmap服務打開的狀態下,資料庫是關閉的)
熱備:(dmap服務一定是打開的,資料庫也是打開的,資料庫要開歸檔)
導入導出:dexp dimp
集群:數據守護(dw),dsc(rac)
達夢支持第三方的備份軟體:愛數,鼎甲

2)物理備份過程(冷備)
第一步:創建歸檔日誌存放路徑
#mkdir /dm7/data/dm01/arch

第二步:開歸檔
SQL> alter database mount;
SQL> alter database add archivelog 'type=local,dest=/dm7/data/dm01/arch,file_size=64,space_limit=0';
SQL> alter database archivelog;
SQL> alter database open;
SQL> select ARCH_MODE,STATUS$ from v$database;
行號 ARCH_MODE STATUS$
---------- --------- -----------
1 Y 4

第三步:停止資料庫服務
[dmdba@localhost dm01]$ service DmServicedm01 stop

第四步:使用dmrman備份
說明:dmrman 命令必須在命令所在的bin目錄下執行才行
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$ ./dmrman
RMAN> backup database '/dm7/data/dm01/dm.ini';
根據提示信息找到備份文件位置

3) 使用命令行備份(熱備)
使用命令行備份,同樣需要開歸檔,但是不需要停資料庫服務
#mkdir /dm7/data/backup
SQL> backup database full backupset '/dm7/data/backup/full_bak';
增量備份
SQL> insert into user2.t1 values(user2.s1.nextval);
SQL> select checkpoint(1);
SQL> backup database increment backupset '/dm7/data/backup/incr_bak';

13.3 還原數據
1)選擇實驗用戶和實驗表空間
SQL> select username,default_tablespace from dba_users where username='USER2';

行號 USERNAME DEFAULT_TABLESPACE
---------- -------- ------------------
1 USER2 TBS3

2)模擬表空間文件損壞
#mv tbs03.dbf tbs03.dbf.bak

3)重啟服務
#service DmServicedm01 stop
#service DmServicedm01 start

4)手動打開資料庫
SQL> alter database open;

5)查看表空間狀態
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces where tablespace_name='TBS3';

行號 TABLESPACE_NAME STATUS
---------- --------------- -----------
1 TBS3 1

6)恢複數據
SQL> restore tablespace tbs3 from backupset '/dm7/data/backup/full_bak';

7)online表空間
SQL> alter tablespace tbs3 online;

8)查看表空間狀態
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces where tablespace_name='TBS3';

行號 TABLESPACE_NAME STATUS
---------- --------------- -----------
1 TBS3 0

9)查詢數據
SQL> select * from user2.t1;
行號 ID
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2
7 3
8 4

8 rows got

13.4 邏輯導入導出
1)工具簡介
Dexp 邏輯導出 dimp 邏輯導入
Dexp和dimp是DM自帶的工具,分為四種級別:
資料庫級,用戶級、模式級和表級。四種級別獨立互斥,不能同時存在。四種級別所提供的功能:
資料庫級(full):導出或導入整個資料庫中的訪問對象。
用戶級(owner):導出或導入一個或多個用戶所擁有的所有對象。
模式級(schemas):導出或導入一個或多個模式下的所有對象。
表級(table):導出或導入一個或多個指定的表或表分區。

2)實驗過程
第一步:備份user2下的數據
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$./dexp sysdba/SYSDBA file=/dm7/data/backup/user2.dmp log=/dm7/data/backup/user2.log owner=user2

第二步:恢複數據到user1下
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$./dimp sysdba/SYSDBA file=/dm7/data/backup/user2.dmp log=/dm7/data/backup/user1.log fromuser=user2 touser=user1

第三步:數據確認(兩次SQL語句是導入數據前後的對比)
SQL> select * from user1.t1;
select * from user1.t1;
[-2106]:Error in line: 1
Invalid table or view name [t1].
used time: 1.538(ms). Execute id is 0.

SQL> select * from user1.t1;

LINEID id
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2

6 rows got

14.達夢SQL開發
14.1 配置ODBC(linux下)
1)安裝(root用戶)
#tar -xvf unixODBC-2.3.0.tar.gz
#cd unixODBC-2.3.0
# ./configure --enable-gui=no
#make
#make install
# odbc_config --version
2.3.0
#odbc_config --odbcini
/usr/local/etc/odbc.ini
#odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

2)修改配置文件
#cd /usr/local/etc
#vi odbc.ini
[dm7]
Desription=DM ODBC DSND
Driver = DM7 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Abcd.1234
TCP_PORT = 5236

#vi odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/bin/libdodbc.so

3)修改文件許可權
#chmod 775 odbc.ini
#chmod 775 odbcinst.ini

4)測試
#su - dmdba
#isql dm7
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+

14.2 存儲過程
1)匿名塊
SQL> set serveroutput on
SQL> begin
print('hello world');
end;
/

2)命名塊(存儲過程)
SQL> CREATE OR REPLACE PROCEDURE USER2.P1
AS
BEGIN
SELECT * from USER2.T1;
END;
/

SQL> call user2.p1;

LINEID id
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2

6 rows got 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • https://blog.csdn.net/w2393040183/article/details/98069555 https://blog.csdn.net/xifeijian/category_1471505.html ...
  • **表的創建和操作** - 界面式操作表 > 創建表:>第一步:打開資料庫,在‘對象資源管理器’中展開‘資料庫’,右擊 ‘pxscj’ 資料庫菜單下的 ‘表’ 選項,在彈出的快捷菜單中選擇 ‘新建表’ 菜單項,如圖> >第二步:在 “表設計器” 的 視窗中,根據以及設計好的xsb的表結構分別輸入或選 ...
  • MySQL高可用 Galera Cluster [toc] Galera Cluster Galera Cluster:集成了Galera插件的MySQL集群,是一種新型的,數據不共用的,高度冗餘的高可用方案,目前Galera Cluster有兩個版本,分別是Percona Xtradb Clust ...
  • 使用oracle客戶端連接資料庫,從oracle官網下載客戶端instantclient_18_3工具,到目錄下打開cmd命令視窗: 個人網盤客戶端工具:https://pan.baidu.com/s/1lM4Faat7Mq0gr7rzmfjtSQ 1.輸入sqlplus; 2.輸入連接信息:use ...
  • 需求 SQL Server的作業歷史(Job)記錄是保存在msdb庫中的,很方便就查詢相關的Job定義,計劃和歷史記錄,而MySQL的event卻沒有歷史記錄。為方便查看event是否正常執行以及執行結果,通過以下兩個步驟來實現類似的功能。 實現 1. 在mysql庫創建event執行的歷史記錄表 ...
  • 問題描述:情形是當主庫真正出現異常之後,才會執行的操作,那麼我們執行過failover 之後,如何在重新構建DG,這裡我們利用flashback database來重構。模擬前主庫要開啟閃回區,否則要重新搭建DG了 1.由於主庫已經不可訪問,下麵所有的操作都在備庫完成,先取消實時同步 SQL> al ...
  • 有時會發現資料庫system表空間增長很快,使用以下語句查看system表空間使用量。也可以使用toad直接看。 執行以下語句查看是哪個對象占用較大 一般發現都是發現是AUD$審計表占用資源量大。 直接登錄資料庫,清理掉SYS.AUD$表。 如果想關閉資料庫審計,可以參考以下鏈接 https://w ...
  • spark 各個版本的application 調度演算法還是有這明顯的不同之處的。從spark1.3.0 到 spark 1.6.1、spark2.x 到 現在最新的spark 3.x ,調度演算法有了一定的修改。下麵大家一起學習一下,最新的spark 版本spark-3.0的Application 調 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...