一、前言 在Linux操作系统下使用shell脚本调用disql执行SQL或SQL脚本,是我们使用数据库一定会遇到的问题。有时需要直接执行SQL,有时需要执行SQL脚本,有时可以从dmdba用户调用,有时必须从root用户调用,总之,具体的情况不尽相同。本文就来详细介绍一下这些不同方式的具体方法。 二、详细教程 2.1 dmdba…
一、问题背景 一般从MySQL迁移到DM数据库时,由于MySQL字符串的长度是以字符为单位,导致迁移过程中有可能遇到报错:超出定义长度。 在DM8的早期阶段,针对从MySQL迁移至DM的场景,由于当时DM尚未原生支持变长字符类型(如VARCHAR(N CHAR))的数据存储需求,故引入了LENGTH_IN_CHAR参数作为临时解决…
一、前言 有时由于CHAR类型为定长,会自动填充空格,不是很舒服,想要将CHAR类型统一修改成VARCHAR类型。 二、修改方法 SELECT 'ALTER TABLE '||TABLE_NAME|| ' MODIFY ' ||COLUMN_NAME||' '||'VARCHAR' ||'('||DATA_LENGTH||');'…
一、创建测试数据 CREATE TABLE LFINJI_A(ID NUMBER PRIMARY KEY, NAME VARCHAR2(20), ATYPE VARCHAR2(1)); CREATE TABLE LFINJI_B(ID NUMBER PRIMARY KEY, NAME VARCHAR2(20), BTYPE VAR…
一、问题描述 一次客户在执行存储过程打印输出时发现,管理工具消息区域并没有像预期一样的输出内容,而是仅有执行SQL的反馈,如图 这是为什么呢? 二、问题复现 我们使用一段示例存储过程,打印输出进行测试 BEGIN DBMS_OUTPUT.ENABLE(100000); FOR I IN 1..10000 LOOP DBMS_OUT…
很多客户在执行CASE WHEN语句时报错,总怀疑是DM数据库的BUG,但其实不然。本文就来讲解一下。 执行如下SQL SELECT CASE WHEN INSTR('1100', ',') > 0 THEN LEFT('1100', INSTR('1100', ',')-1) ELSE '1100' END AS STR FRO…
一、简单概述 达梦数据库中的大小写敏感指的是对象名敏感+列值大小写字符敏感。 受初始化参数 CASE_SENSITIVE 指定。 二、敏感与不敏感 敏感【CASE_SENSITIVE=1】 大写对象 T 和小写 t 对象为 2 个对象,其中小写对象需要使用双引号进行指定 如 表"t" 和T指的是 2 个表 列"Id"和id指的是 …
最全的表字段信息查询 SELECT DT.OWNER 用户名, DT.TABLE_NAME 表名, DT.TABLE_COMMENTS 表注释, DT.TABLESPACE_NAME 所属表空间, DT.TABLE_PK 表主键, DTC.COLUMN_NAME 字段名, CASE WHEN DTC.DATA_PRECISION …
一、用户管理 用户是操作者的一个身份。DM 预定义用户: SYS:系统内置用户,不能直接登录。 SYSDBA:数据库管理员,拥有 DBA 角色。 SYSAUDITOR:数据库审计管理员。 SYSSSO:数据库安全管理员,拥有强制访问控制等权限。 SYSDBO:安全版本才有此用户,对象操作员。 PWD_POLICY 系统口令策略: …
一、前言 对象统计信息描述数据是如何在数据库中存储的。统计信息是优化器的代价计算的依据,可以帮助优化器较精确地估算成本,对执行计划的选择起着至关重要的作用。 达梦数据库的统计信息分三种类型:表统计信息、列统计信息、索引统计信息。通过直方图来表示。统计信息生成过程分以下三个步骤: 确定采样的数据:根据数据对象,确定需要分析哪些数据。…