达梦数据库:常用sql语法总结-持续更新211222

达梦数据库:常用sql语法总结-持续更新

日期:
dmsql日期类型转换

selct TO_CHAR(SYSDATE -3,'YYYYMMDD');

授权:
将一个用户所有表,授权给另一个用户:给 A 授予 B 的 SELECT 查询权限,
此结果集只是将 授权语句的结果查询出来,需要导出文本再执行一遍哟

select
        'grant select on '
        ||T
        ||' to A WITH GRANT OPTION;'
from
        (
                SELECT
                        '"'
                        ||OWNER
                        ||'"."'
                        ||OBJECT_NAME
                        ||'"' T
                from
                        dba_OBJECTS
                where
                        owner            ='B'
                    AND OBJECT_TYPE='TABLE')
                    

达梦数据库license替换,许可证替换
试用版环境,dm.key到期后,需要替换新的dm.key,
如果dm.key的名称是dmA123456.key,dm
*_****.key则需要重命名为dm.key
替换方法 有2种:**

方法 1:

将新的 dm.key文件放到达梦数据库程序安装目录的bin 下,并更改属组:
例如:


$ pwd
$ /home/dmdba/dmdbms/bin/
$ ll dm.key
-rw-------. 1 dmdba dinstall 648 11月 19 01:49 dm.key

重启数据库实例服务!完成dm.key替换,
如果dm.key版本信息与服务器数据库环境不匹配,数据库服务将无法启动

方法 2:将dm.key 放置bin目录内,
不用重启数据库服务,维护集群更方便

引用于:DM8_SQL语言使用手册 >>>附录 3 系统存储过程和函数
SP_LOAD_LIC_INFO()
定义:
VOID
SP_LOAD_LIC_INFO()
功能说明:
进行 DM 服务器的 LICENSE 校验,检查 LICENSE 与当前 DM 版本及系统运行
环境是否一致,如果有不一致则 DM 服务器主动退出。
参数说明:

返回值:

举例说明:
SP_LOAD_LIC_INFO();

在达梦的manager管理工具,或者disql执行此语句,即可更新dm.key 信息


SP_LOAD_LIC_INFO();

替换完成后,执行此语句可验证


SELECT * FROM V$LICENSE;

查询:
查询达梦数据库实例的详情:


SELECT '实例名称' 数据库选项,INSTANCE_NAME  数据库集群相关参数值 FROM v$instance union all
SELECT '授权客户',(SELECT AUTHORIZED_CUSTOMER FROM V$LICENSE) UNION ALL
SELECT '数据库授权码',(SELECT SERIES_NO FROM V$LICENSE) UNION ALL
SELECT '数据库有效期',cast((SELECT EXPIRED_DATE FROM V$LICENSE)as VARCHAR) UNION ALL
SELECT '数据库版本',substr(svr_version,instr(svr_version,'('))  FROM v$instance union all
SELECT '数据库版本小号',(SELECT id_code)  FROM v$instance union all
SELECT '数据库实例路径',(SELECT PARA_VALUE from v$dm_ini where para_name like'%SYSTEM_PATH%')  FROM v$instance union all
SELECT '数据库模式',MODE$ from v$instance  union all
select '数据库状态',status$ from v$instance union all
select '归档状态_开 Y/关 N',ARCH_MODE from v$database union all
SELECT '长度是否以字符为单位',CASE (SELECT PARA_VALUE FROM V$DM_INI WHERE "V$DM_INI".PARA_NAME ='LENGTH_IN_CHAR') WHEN '0' THEN '否' WHEN '1' THEN '是' END UNION ALL
SELECT '大小写是否敏感_是 Y,1/否N,0',cast(SF_GET_CASE_SENSITIVE_FLAG() as varchar) union all
SELECT '字符集',CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' then 'UTF-8' when '2' then 'EUC-KR' end union all
SELECT '页大小',cast(PAGE()/1024 as varchar) union all
SELECT '簇大小',cast(SF_GET_EXTENT_SIZE() as varchar) union all
SELECT '唯一魔数',cast(permanent_magic as varchar) union all
SELECT 'LSN',cast(cur_lsn as varchar) from v$rlog union all
SELECT '当前登录用户',USER;



结果如图:
达梦数据库:常用sql语法总结-持续更新211222_第1张图片

V查询数据库实例的字符集

SELECT SF_GET_UNICODE_FLAG ();
返回值:
0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR

V查询数据库实例的大小写敏感值

SELECT SF_GET_CASE_SENSITIVE_FLAG();
返回值:
1,y,Y为大小写敏感,0,n,N 为大小写不敏感

v查看dm数据库版本:

select * from V$VERSION 
union all
SELECT  ID_CODE;

V查看数据库实例信息:

SELECT * FROM V$INSTANCE;

V查询所有用户

SELECT * FROM ALL_USERS;

V查询所有用户拥有权限

SELECT * FROM SYS.USER_ROLE_PRIVS;

V查询所有对象名称与用户的关系

SELECT * FROM ALL_OBJECTS;

V查看用户下所有表(根据使用的用户实际权限决定查询范围)

select * from ALL_TABLES;

V查看用户下所有表与列

select * from ALL_TAB_COLUMNS;

V查看用户下所有表与所以列与列注释信息

select * from ALL_COL_COMMENTS;
select * from ALL_TAB_COMMENTS;

V查看表的所有约束信息

select * from ALL_CONSTRAINTS;

获得dm.ini文件中任何参数的值

SELECT SF_GET_PARA_VALUE(1,'参数名');
SELECT SF_GET_PARA_VALUE(1,'buffer');

–开启 sql 日志记录功能

call SP_SET_PARA_VALUE(1,'SVR_LOG',3);

–关闭 sql 日志记录功能

call SP_SET_PARA_VALUE(1,'SVR_LOG',0

–查询 sql 日志记录是否开启:0 关闭,3 开启);

select SF_GET_PARA_VALUE(1,'SVR_LOG')union ALL
select SF_GET_PARA_VALUE(2,'SVR_LOG');

–服务器日志是否记录通信中产生的警告信息。
–0:不记录;1:记录

call SP_SET_PARA_VALUE(1,'COMM_TRACE',0);

–查询日志是否记录通信中产生的警告是否开启:0 关闭,3 开启);

select SF_GET_PARA_VALUE(1,'COMM_TRACE')union ALL
select SF_GET_PARA_VALUE(2,'COMM_TRACE');

你可能感兴趣的:(数据库,数据库)