当前位置:首页 » 数据仓库 » DM怎么导入数据库报警告
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

DM怎么导入数据库报警告

发布时间: 2022-09-08 08:45:01

㈠ DM数据库迁移到Oracle需要注意什么 如何迁移

将数据从Mysql迁移到Oracle的注意事项,有如下几点
1.自动增长的数据类型处理

MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记)
INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
2. 单引号的处理

MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。当然你如果使用 Convert Mysql to Oracle工具就不用考虑这个问题
3.长字符串的处理

在ORACLE中,INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
4. 翻页的SQL语句的处理

MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM<100, 不能用ROWNUM>80。

5. 日期字段的处理

MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间SYSDATE, 精确到秒。
日期字段的数学运算公式有很大的不同。
MYSQL找到离当前时间7天用:DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)
ORACLE找到离当前时间7天用:DATE_FIELD_NAME >SYSDATE - 7;
6. 字符串的模糊比较

MYSQL里用 字段名 like '%字符串%',ORACLE里也可以用 字段名 like '%字符串%' 但这种方法不能使用
索引, 速度不快,用字符串比较函数 instr(字段名,'字符串')>0 会得到更精确的查找结果。
7. 空字符的处理

MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
Oracle移植到mysql注意事项

客户用的数据库是mysql,而研发好的产品支持oracle,我们必须把数据库环境从oracle移植到mysql。在移植的过程中碰到了下面一些问题,如果我们在最初的设计、编码过程中注意数据库的移植性,这种情况下可以完全不需要作额外工作。
一、数据库环境从oracle移植到mysql碰到的问题。

1、 大小写敏感的区别(如果服务器OS是linux)。

在oracle中一般情况下不区分大小写。有时候我们在使用oracle不注意大小写的问题,表名和字段名不加双引号是不区分大小写的,像这样:insert into tableName 和 insert into TABLENAME效果是一样的,用工具导出创建/数据初始化脚本,得到的结果一般表名和字段名转化成了大写。
但在MySQL中,所使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。数据库对应数据目录中的目录,数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。
因此,使用数据库或表实际上是操纵这些文件(夹),所以使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。在以linux为内核的操作系统中是大小写敏感的。
解决办法,是把mysql的数据库名和oracle的大小写保持一致,表名与应用程序中sql字符串中的表名保持
一致,如果应用程序中字段名用了双引号,那请把sql中的字段名大小写与双引号里的字符保持一致。如果
你的应用程序所引用的表名、字段没有统一大小写,那麻烦就大了。
2、保留字的区别。

像sql语言的函数名(如:inteval,show)等是保留字。Oracle中保留字是可以作为表名和字段名,并且不影响使用,但mysql中保留字是不能作为表名和字段名,如果使用会报语法错误。
解决办法,把sql语句中的保留字用‘`'符号引起来,这个符号位于键盘的tab键上面;如果是字段名还有另外一种方法tablename.字段名。像这样:
insert into tablename (id, `interval`) value(…..

insert into tablename (id, tablename.inteval) value(…..
3、自动增长类型的区别。

Oracle有sequence,mysql中没有,但有auto_increment属性。
解决办法是把Oracle中sequence转换成使用auto_increment属性,某些情况可能还有一种办法可以解决问题,新建一个独立的表用来专门记录自动增长型的数据。
4、数据类型的区别。
在mysql中没有像oracle中的varchar2、number,mysql有与之对应的varchar、numeric,当然在oracle中没有mysql的time类型。
解决办法是替换。
5、索引长度限制的区别。

从MySQL 4.1.2开始,MyISAM和InnoDB表索引长度支持1000字节,也就是说索引字段的长度不能超过1000字节,如果超过会报这样的错:
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes。
如果是UTF-8编码,相当于333个字符的长度(因为UTF8一个字符占3个字节)。Oracle的索引长度限制比mysql要宽松得多。
解决办法:就不必要多说了,要么改索引的定义,要么改字段的定义长度。
二、为了数据库的兼容性我们应该注意些什么。
数据库的兼容性应该是数据库设计应该重视的一个问题,因为有时候客户存在已经在用的数据库,并且
不希望同时维护两个数据库,这样的话兼容多种数据库还能成为产品的一个卖点。
作到数据库的兼容性关键是遵守标准用法。
1、遵守标准用法,尽量不使用某种数据库特有的用法。

如msyql的‘`'符号的用法,再比如,很多人有这种用法,在使用oracle开发的时候创建sequence,往表中插数据之前先SELECT seq.nextval FROM DUAL;,然后把查询得到的值作为value插入表中,这种用法没法适应没有sequence的数据库,每个数据库都有自
动增长型的用法,如果需要使用就应该完全地使用。
再举个例子,不同的数据库对分页查询作了扩展,postgresql有offset,limit,oracle就没有。
2、保留字。

要求数据库设计者尽量不使用保留字作表名和字段名。也有很多人有这种用法,在表名和字段名前加‘_',
像这样:create table _tablename ( _id integer)。这样永远不会出现保留字引起的问题。
3、避免数据库大小写敏感的问题。

选择数据库表名和字段名采用大写还是小写,并且在数据库的设计和编码过程中完全统一。
当使用 Convert Oracle to Mysql 工具时,请注意“名称转换为大写”这个选项的控制。

㈡ DM连接Access数据库的问题

使用Provider=Microsft.Jet.OLEDB.4.0;Data Source=&Server.MapPath("")

㈢ oracle数据库用imp命令导入数据库时报1659的错误,怎么解决

oracle在导入数据时报1659的错误的原因主要是数据库表空间剩余空间不足引起的。

分析原因

1、表空间剩余空间不足。

使用下面语句,查看表空间剩余空间

selectUpper(f.tablespace_name)"表空间名",

d.tot_grootte_mb"表空间大小(M)",

d.tot_grootte_mb-f.total_bytes"已使用空间(M)",

to_char(round((d.tot_grootte_mb-f.total_bytes)/

d.tot_grootte_mb*100,2),'990.99')||'%'"使用比",

f.total_bytes"空闲空间(M)",

f.max_bytes"最大块(M)"

from(selecttablespace_name,

round(sum(bytes)/(1024*1024),2)total_bytes,

round(max(bytes)/(1024*1024),2)max_bytes

fromsys.dba_free_space

groupbytablespace_name)f,

(selectdd.tablespace_name,

round(sum(dd.bytes)/(1024*1024),2)tot_grootte_mb

fromsys.dba_data_filesdd

groupbydd.tablespace_name)d

whered.tablespace_name=f.tablespace_name

orderbyf.tablespace_name;

表空间剩余空间不足时,可以根据原数据库表空间大小增加表空间。

altertablespace表空间名adddatafile'数据文件名'size数据文件大小;

2、剩余表空间还很多。

使用下面语句查看原数据库表表定义,找到initial_extent值大的表,将这些表的

创建语句导出后修改initial_extent值,在目标数据库中创建后再导入数据,导入时

增加参数ignore=y。

selecttable_name,initial_extent

fromuser_tables

whereinitial_extentisnotnull

orderbyinitial_extentdesc

如果找不到原数据库,可以使用

impuserid/userid@service_namefile=dmp文件名indexfile=index文件名rows=nfull=Y

命令将dmp文件中创建表的语句导入到indexfile文件中,查看indexfile如下:

REMCREATETABLE"TEST"."DM_KJKM_COPY"("KJZDMB_DM"VARCHAR2(100)

REM ENABLE,"KMID"NUMBER(20,0),"KMBM"VARCHAR2(100),"KMMC"

REMVARCHAR2(500),"KMQC"VARCHAR2(1000),"KMLB_DM"VARCHAR2(100),

REM ...

使用文本编辑工具,查找INITIAL将过大的初始值改为65536后,将REM去除后,在数据库中创建后再使用exp导入数据,导入时增加参数ignore=y。

㈣ 如何把powerdesigner中的表直接导入数据库

1、 打开PowerDesigner12,在菜单中按照如下方式进行操作file->Reverse Engineer->DataBase
点击后,弹出 New Physical Data Model 的对话框,如下图:

2、 在General选项卡中
Model name:模板名字,自己命名。
DMBMS :根据需要选择,我选择的是Microsoft SQL Server 2005
点确定后弹出 Database Reverse EngineeringOption 对话框

3、 Selection选项卡中,选中Using a data source选项
注意如果是第一次导入数据,需要你先自己配制ODBC数据源,方法如下:
1)点击下面右侧的数据库连接按钮,弹出 Connectto a Data Source 的对话框
2)选中 ODBC machine data source 选项,点击 Modify按钮右边的 Configure 按钮弹出Configure Data Connections

4、 在 ODBC Machine Data Sources选项卡下面的工具栏中点击第二个数据库配置按钮(AddData Source(Ctrl+N)) 弹出创建新数据源窗口,选择文件数据源,选择相应的数据源驱动程序(我选SQl Server),点下一步,给数据源起个名字,选择服务器,下一步,输入相应的密码

㈤ 连接DM数据库出现报错,但是安装DM数据库带的管理工具就可以连接

你好
你可以参考下网络文库这篇关于DM数据库链接的教程,看是否哪里出问题了
http://wenku..com/link?url=_WWcPwjWINwNcu_

㈥ 达梦数据库总是连接失败怎么解决

摘要 解决该问题方法:

㈦ dm数据库参数个数大于2048怎么解决

1、打开PHP.ini。找到 upload_max_filesize 、 memory_limit 、 post_max_size 这三个参数!
(在默认的情况下,php只允许最大的上传数据为2M,也就是2048KB,而极限的最大使用内存memory_limit也仅为128M,Post的最大也为2M)

2、按您的服务器的实际性能配置进行如下改动:(注意:以下是按我的服务器性能和硬件配置进行的更改..)

upload_max_filesize = 8M (上传最大极限设定为8M,这个应该足够一般的文件WEB上传了)
memory_limit = 512M (因为服务器的内存为2GB,所以这里加到512M不过份吧,呵)
post_max_size = 8M (Post数据最大也设置为8MB,这个跟upload_max一样)

3、改完之后,我重新启动系统,再重新执行导入命令后:
Import has been successfully finished, 399 queries executed.
(显示导入成功,有多少个请求处理成功…)

(备注:改完后当你在到phpMyadmin的导入命令行时,虽然(有时候可能会仍然显示为:最大限制:2048KB/Max: 2,048KiB);但实际上你已经可以导入不超过8M的MySQL数据库.sql导出的备份文件了! 另,改完php.ini后,别忘了重启一下web服务或者是服务器哟!重启后升效!)

㈧ Dream Maker游戏引擎打开DM格式的工程文件提示“数据库打开失败2”是怎么回事。

1.打开控制面板——管理工具——数据源(ODBC)。

2.在弹出的对话框中双击——MS Access Database.

㈨ linux导入oracle数据库dm文件时卡在一张表上

源数据库和目标数据库必须运行在相同的硬件平台上。源数据库与目标数据库必须使用相同的字符集。

㈩ 我用dm连接数据库 数据导入后 为什么检查网页的时候就成了这个样子了

我不清楚dm连接,但在asp.net网站设计中遇到过此类问题,你不妨试试:
1、先查看你的数据库是否导入你的数据库软件里
2、查看你的sql连接语句,是否正确。