使用oracle数据库存储信息,其中有一个字段是image(存储图片文件),类型是long raw。

使用oracle数据库存储信息,其中有一个字段是image(存储图片文件),类型是long raw。,第1张

这个取值不对,你那个是,好像应该用二进制流来获得,然后用inputstream来读。如果是web项目,最后你在页面上直接输出,应该可以把显示出来。

//你的代码

InputStream in = null;

while(rsnext()) {

in = rsgetBinaryStream("image"); //用这个流

}

byte[] byte = new byte[1024];

int len = inread(byte);

//这个out就是在页面上的输出

outwrite(byte,0,inread(byte));

这个你试试,大概就能想起这么多

1、首先打开SQL Server后,选择数据,点击顶部的新建查询按钮,如下图所示。

2、然后直接用sp_addtype语句进行数据类型的定义,如下图所示。

3、接下来刷新用户自定义数据类型,这次就有数据了,如下图所示。

4、接着右键数据表选择设计选项,如下图所示。

5、最后就可以在数据类型里面找到自定义的数据类型了,如下图所示。

问题一:数据库怎样可以将放到里面 首先肯定一点,数据库中是可以放数据的!但是这样的话,数据体积会很庞大,当然最好还是把放到文件夹中,数据只用来存放路径,不过最好是存放相对路径,应该以后可能设计到单独放在另一台服务器上,或换了文件夹。

问题二:SQL数据库中能存照片吗? 完全可以存放,但是在数据库中不能以select from a进行查询

但是在相对应得c#、Java中可以查询

是以二进制保存的。

数据库,只要是抽象出来的数据,都可以保存。

而已不能保存的,就是实体,像处啊、鞋子啊、男朋友啊都不姓

问题三:mysql数据库可以存吗? 可以。存的列需要设置成BLOB、MEDIUMBLOB或LONGBLOB等数据类型。

但是以前基本上不会把直接存在数据库里,因为数据库里的数据是为了用来快速分析、快速存取的,数据在mysql里既不能建立索引也不能和其他数据一起分析,存取速度和读写磁盘也没什么区别,每次备份、导入导出数据库时还增加了数据量,降低了效率。所以一般都是把存在系统里,然后把的存放路径放在数据库里。

问题四:如何存入数据库 第一种方式:保存路径至数据库中

第二种方式:数据插入相应表中,参数类型为byte[]

例如:

sql:insert into table(imageColumn) values (@image);

其中@image参数值为byte[]类型的变量

问题五:如何存放在oracle数据库 测试可行。这只是核心Class文件代码,你要是弄不出来,就再联系我,我再把整个项目给你。这是把真个放到数据库

package dao;

import javaioFileInputStream;

import javaioOutputStream;

import javasqlBlob;

import javasqlConnection;

import javasqlPreparedStatement;

import javasqlResultSet;

import javautilScanner;

import oraclesqlBLOB;

public class Insert {

Scanner sc =new Scanner(Systemin);

@SuppressWarnings(deprecation)

public int insertbinary(String pname,String src1){

Connection con = null;

String sql = insert into test values(,);

String sql1 =update test set image= where pname=;

int res = 0;

try {

con=BaseDAOgetConnection();

consetAutomit(false);

PreparedStatement pstm = conprepareStatement(sql);

pstmsetString(1, pname);

EMPTY_BLOB和EMPTY_CLOB返回一个空的LOB定位器,

可以用来初始化一个LOB变量,或在INSERT或UPDATE语句,

初始化LOB列或属性为空。 EMPTY表示LOB初始化,但不填充数据。

pstmsetBlob(2, oraclesqlBLOBempty_lob());

pstmexecuteUpdate();

pstmclose();

pstm = conprepareStatement(select from test where pname=);

pstmsetString(1, pname);

ResultSet rs = pstmexecuteQuery();

rsnext();

BLOB blob = (BLOB) rsgetBlob(2);

OutputStream os = blobgetBinaryOutputStream();

FileInputStream fi = new FileInputStream(src1);

byte[] buff = new byte[1024];

int len = firead(buff);

while (len != -1) {

oswrite(buff);

len = firead(buff);

}

pstm = conprepareStatement(sql1);

pstmsetBlob(1,>>

问题六:如何将储存在MySQL数据库里 通常对用户上传的需要保存到数据库中。解决方法一般有两种:一种是将保存的路径存储到数据库;另一种是将以二进制数据流的形式直接写入数据库字段中。以下为具体方法:

一、保存的上传路径到数据库:

string uppath=;用于保存上传路径

获取上传的文件名

string fileFullname = thisFileUpload1FileName;

获取上传的时间,以时间作为的名字可以防止重名

string dataName = DateTimeNowToString(yyyyMMddhhmmss);

获取的文件名(不含扩展名)

string fileName = fileFullnameSubstring(fileFullnameLastIndexOf(\\) + 1);

获取扩展名

string type = fileFullnameSubstring(fileFullnameLastIndexOf() + 1);

判断是否为要求的格式

if (type == bmp || type == jpg || type == jpeg || type == gif || type == JPG || type == JPEG || type == BMP || type == GIF)

{

将上传到指定路径的文件夹

thisFileUpload1SaveAs(ServerMapPath(~/upload) + \\ + dataName + + type);

将路径保存到变量,将该变量的值保存到数据库相应字段即可

uppath = ~/upload/ + dataName + + type;

}

二、将以二进制数据流直接保存到数据库:

引用如下命名空间:

using SystemDrawing;

using SystemIO;

using SystemDataSqlClient;

设计数据库时,表中相应的字段类型为iamge

保存:

路径

string strPath = thisFileUpload1PostedFileFileNameToString ();

读取

FileStream fs = new SystemIOFileStream(strPath, FileModeOpen, FileAccessRead);

BinaryReader br = new BinaryReader(fs);

byte[] photo = brReadBytes((int>>

问题七:如何在数据库中存储文件 解决方法一般有两种:

一种是将保存的路径存储到数据库;

另一种是将以二进制数据流的形式直接写入数据库字段中。

问题八:如何将存到数据库 通常对用户上传的需要保存到数据库中。解决方法一般有两种:一种是将保存的路径存储到数据库;另一种是将以二进制数据流的形式直接写入数据库字段中。以下为具体方法:

一、保存的上传路径到数据库:

string uppath=;用于保存上传路径

获取上传的文件名

string fileFullname = thisFileUpload1FileName;

获取上传的时间,以时间作为的名字可以防止重名

string dataName = DateTimeNowToString(yyyyMMddhhmmss);

获取的文件名(不含扩展名)

string fileName = fileFullnameSubstring(fileFullnameLastIndexOf(\\) + 1);

获取扩展名

string type = fileFullnameSubstring(fileFullnameLastIndexOf() + 1);

判断是否为要求的格式

if (type == bmp || type == jpg || type == jpeg || type == gif || type == JPG || type == JPEG || type == BMP || type == GIF)

{

将上传到指定路径的文件夹

thisFileUpload1SaveAs(ServerMapPath(~/upload) + \\ + dataName + + type);

将路径保存到变量,将该变量的值保存到数据库相应字段即可

uppath = ~/upload/ + dataName + + type;

}

二、将以二进制数据流直接保存到数据库:

引用如下命名空间:

using SystemDrawing;

using SystemIO;

using SystemDataSqlClient;

设计数据库时,表中相应的字段类型为iamge

保存:

路径

string strPath = thisFileUpload1PostedFileFileNameToString ();

读取

FileStream fs = new SystemIOFileStream(strPath, FileModeOpen, FileAccessRead);

BinaryReader br = new BinaryReader(fs);

byte[] photo = br>>

问题九:怎样数据库access保存jpg 只有两种方法

1存地址,放服务器的一个文件夹里

2存的数据,也就是二进制流

既然第一种你说不行 那只能第二种了。

我只说一下思路,代码网上找一下,多的很,也不麻烦1数据库字段类型为image(sqlserver的是image,不知道access的是不是)

2把文件序列化 放到一个byte[]数组里,然后存到数据库

显示的时候:

1单独在一个页面读出的内容到一个byte[]数组

2用response把这段二进制输出

3在要引用的地方,比如你的image控件,把引用的地址指向这个页面就行了

问题十:如何像数据库中保存? 一般图像是不保存在数据库的而是先将放在工程下的某个文件夹中,将所在的工程文件路径存在数据库中,当程序加载的时候,从数据库中读取的路径,然后根据路径在工程的文件夹中读取文件

SystemDataOleDbOleDbDataReaderGetBytes 方法获取 byte[] 二进制数据。

SystemIOFileStreamWrite 方法写入 byte[] 二进制数据。

请参见 MSDN 的详细参数说明,我不粘贴 MSDN 了。

注意:

FileData 表里的 image 字段里面存放的文件特别大(如:几百兆大小),建议不要 GetBytes 方法一次性读取到内存中,这样不仅很耗内存,并且速度也特别慢。

合理的方法:

设立一个循环,分段读取(如:一次读取 1MB)二进制数据,再调用 Write 把刚才读取的数据写入文件,循环到直至数据全部读取完毕。

PS:

通过 GetBytes 的返回值可以判断数据是否读取完毕(判断是否为零)。该方法的返回值表示读取到的字节数。

提示:

假设您一次读取 1000 字节的数据,而数据字段已没有 1000 字节的数据则 GetBytes 返回值 < 1000 否则 GetBytes 返回值 == 1000

如果是用sql

语句插入数据的话如下:

insert

into

table(a,b,c)

value(1,2,3)

--若b需要使用默认值,如下即可:

insert

into

table(a,c)

value(1,3)

insert

into

table

value(1,2,3)

insert

into

table

select

a,b,c

from

table1

insert

into

a

select

from

b

从根本的上说,都是insert用法。没有利避,只看需要。

你仔细分析一下,就会发现,还是标准的insert

insert

into

表名

[表列]value[对应值]

要是变化就在前面的表列和对应值上,怎么用表列,可省略,可以动态的取得。

对应值的获取方法就更多了,可以动态的输入,比如一些存储过程。还可以从别的表中取得,也可以固定时,还可以用一些函数,等等

image是byte类型,你把字符串转化为Byte数组,再保存就可以了

byte[] bytStr = SystemTextEncodingDefaultGetBytes(str);

以上就是关于使用oracle数据库存储信息,其中有一个字段是image(存储图片文件),类型是long raw。全部的内容,包括:使用oracle数据库存储信息,其中有一个字段是image(存储图片文件),类型是long raw。、sql server 中的image数据类型。怎么存储8张图片、数据库能存图片吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9313522.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存