如何向postgresql数据库里导入其它类型的数据?

如何向postgresql数据库里导入其它类型的数据?,第1张

是不是如何将mssql的数据导入到acc中如果是的话给你,如果不是当我没说,因为不知道postgresql是什么

SQL

SERVER

和ACCESS的数据导入导出

常规的数据导入导出:

使用DTS向导迁移你的Access数据到SQL

Server,你可以使用这些步骤:

1在SQL

SERVER企业管理器中的Tools(工具)菜单上,选择Data

Transformation

2Services(数据转换服务),然后选择

czdImport

Data(导入数据)。

3在Choose

a

Data

Source(选择数据源)对话框中选择Microsoft

Access

as

the

Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。

4在Choose

a

Destination(选择目标)对话框中,选择Microsoft

OLE

DB

Prov

ider

for

SQL

Server,选择数据库服务器,然后单击必要的验证方式。

5在Specify

Table

Copy(指定表格复制)或Query(查询)对话框中,单击Copy

tables(复制表格)。

6在Select

Source

Tables(选择源表格)对话框中,单击Select

All(全部选定)。下一步,完成。

Transact-SQL语句进行导入导出:

1.

在SQL

SERVER里查询access数据:

SELECT

*

FROM

OpenDataSource(

'Microsoft.Jet.OLEDB.4.0','Data

Source="c:\DB.mdb"User

ID=AdminPassword=')...表名

2.

将access导入SQL

server

在SQL

SERVER

里运行:

SELECT

*

INTO

newtable

FROM

OPENDATASOURCE

('Microsoft.Jet.OLEDB.4.0',

'Data

Source="c:\DB.mdb"User

ID=AdminPassword='

)...表名

3.

将SQL

SERVER表里的数据插入到Access表中

在SQL

SERVER

里运行:

insert

into

OpenDataSource(

'Microsoft.Jet.OLEDB.4.0',

'Data

Source="

c:\DB.mdb"User

ID=AdminPassword=')...表名

(列名1,列名2)

select

列名1,列名2

from

sql表

实例:

insert

into

OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'C:\db.mdb''admin''',

Test)select

id,name

from

Test

INSERT

INTO

OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'c:\trade.mdb'

'admin'

'',

表名)

SELECT

*

FROM

sqltablename

用我写的软件可以用Excel导入到PostgreSQL,你上网找fitreport就行了。

或者这样做:

可以写语句或采用以下的方法

网上转录下来的方法:

步骤:

1.将excel表格字段,按照postgresql 数据库中表的字段顺序来整理数据,并保存为csv文件。

2.用记事本打开csv文件,另存为UTF-8格式。

3.使用PgAdmin客户端链接postgresql数据库,执行如下脚本,导入csv文件到PostgreSQL数据表:

copy testdata from 'd:/test/testdata.csv' delimiter as',' csv quote as '"'

注:testdata 是postgreSQL数据库表的名称。

注意事项:

1.test目录需要赋予postgres 用户可读写的权限,否则会有如下报错信息:

ERROR: could not open file "d:/testdata2.csv" forwriting: Permission denied

2.csv文件要为utf-8格式,否则导入时可能会有报错:

ERROR: invalid bytesequence for encoding "UTF8": 0xcdf5

3.注意windows环境下文件路径的表述方式,如:d:/test/data.csv

如果想要在PostgreSQL中存储二进制数据,例如存储Word、Excel文档,图片文件等,可以使用bytea类型的列。bytea类型是PostgreSQL特有的存储二进制数据的字段类型,与SQL标准中的BLOB和BINARY LARGE OBJECT类型异曲同工。这在PostgreSQL文档的bytea类型介绍中有所说明。

接下来先说说如何向表中插入、更新bytea数据。

PostgreSQL允许在SQL命令中包含bytea类型的数据,以便能够使用INSERT向表中插入含有二进制数据的记录,使用UPDATE和调用与bytea类型相关的函数更新和 *** 作bytea类型数据。二进制数据是一个字节序列,然而SQL命令是文本字符串,怎样在SQL中写入二进制数据呢?答案很简单,把每一个字节转换成对应的三位十进制数字的八进制数字符串表示,以双斜线做为前缀,即0x00表示为\\000、0x2C表示为\\02C、0xFF表示为\\377,并按照bytea类型的要求在字符串前端的单引号外注明E。举例如下:

INSERT INTO table1 (fileid, filename, content) VALUES (1, 'filename.doc', E'\\000\\001\\002')

INSERT INTO table1 (fileid, filename, content) VALUES (2, 'anotherfile.jpg', E'\\000\\377')

UPDATE table1 SET content = E'\\000\\000\\000' WHERE fileid = 1

UPDATE table1 SET content = content || E'\\377\\377\\377' WHERE fileid = 2

可以在INSERT INTO中包含整个文件的bytea类型字符串,也可以像上面第四行那样,分块追加。对于短小的二进制数据,在命令控制台中编辑SQL命令也未尝不可。但是如果要存储一个图片文件或者Word文档之类的大型二进制数据的时候,就需要借助数据访问借口,或者自己写一个字节转换程序,直接 *** 作SQL语句。

插入bytea数据后可以使用SELECT语句获取它。如下所示:

SELECT content FROM table1

在命令控制台中,我们会看到以输入时的字符串格式输出二进制数据,这是PostgreSQL做的转换。在Python中使用psycopg2模块,执行上述SELECT语句后能够获得原始的二进制字节字符串,可以直接写入二进制文件。

顺便说明一下。对于字节的转换,PostgreSQL的文档说的非常详细,按照零字节、单引号、斜线,以及字符的可打印性分别作了讨论。原因是需要逃逸单引号和斜线字符,另外可打印字符可以不作转换,直接出现。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11618769.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存