社区
MS-SQL Server
帖子详情
Insert语句长度是不是有限制的啊
wt_sanlian
2003-10-30 12:58:41
我用Insert语句插入一行,带有一个Blob字段:
Insert into mytable ( Name,Photo) values ( 'mary' ,0xFFD8FFDB....)
当照片文件长度大于30多KB时,转换成BCD码有多KB,Query Analyzer 就报错,说什么SQL语句超过64K限制。
各们朋友,怎么才能解决这个问题呢?
...全文
547
9
打赏
收藏
Insert语句长度是不是有限制的啊
我用Insert语句插入一行,带有一个Blob字段: Insert into mytable ( Name,Photo) values ( 'mary' ,0xFFD8FFDB....) 当照片文件长度大于30多KB时,转换成BCD码有多KB,Query Analyzer 就报错,说什么SQL语句超过64K限制。 各们朋友,怎么才能解决这个问题呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wt_sanlian
2003-10-30
打赏
举报
回复
转换成BCD码有60多KB
wt_sanlian
2003-10-30
打赏
举报
回复
我用的是C++ Builder
cllxyuer
2003-10-30
打赏
举报
回复
用什么语言?我用delphi,1M都没有问题的。当然,我不用Insert语句,我直接用什么TBoldField什么的字段处理。用流的方式。
pengdali
2003-10-30
打赏
举报
回复
你是什么语言?
yun198183
2003-10-30
打赏
举报
回复
哦,了解
wt_sanlian
2003-10-30
打赏
举报
回复
Blob字段是Image类型的,
客户端运行在另外一台机器上,负责采集照片, 照片是Jpg格式,
照片长度小于30k时,转换成BCD码,形成Insert的语句其长度小于60k, 可以成功的插入到数据库中,也可以正常读出;但照片长度超过30多k以后,也可以插入,但照片再读出来时,其格式被破坏了.
伍子V5
2003-10-30
打赏
举报
回复
MSSQL
一列长度是有8K限制的
所以只有利用楼上的办法
lynx1111
2003-10-30
打赏
举报
回复
Blob字段?image?
1、建立过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x)
insert 表名 values(2,0x)
go
3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.avi','where 编号=1','I' --注意条件是 编号=1
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.wav','where 编号=2','I' --注意条件是 编号=2
go
4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.avi','where 编号=1','O' --注意条件是 编号=1
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.wav','where 编号=2','O' --注意条件是 编号=2
go
把image列清空:update 表 set 列=null
伍子V5
2003-10-30
打赏
举报
回复
用image类型
方法:
1、建立过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x)
insert 表名 values(2,0x)
go
3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2
go
4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','O' --注意条件是 编号=2
go
MySQL数据库中创建学生表SQL
语句
mysql数据库创建学生表 这个SQL
语句
会创建一个名为 "Students" 的表,其中包括以下列: • StudentID: 学生的唯一标识,使用 AUTO_INCREMENT 进行自动递增,作为主键。 • FirstName: 学生的名字,
限制
为最大
长度
为50个字符,并且不能为空。 • LastName: 学生的姓氏,
限制
为最大
长度
为50个字符,并且不能为空。 • DateOfBirth: 学生的出生日期,使用 DATE 类型存储。 • Gender: 学生的性别,使用 ENUM 类型存储,只允许 'Male', 'Female', 'Other' 三个值。 • Major: 学生的专业,
限制
为最大
长度
为100个字符。 你可以根据你的具体需求来自定义这个表结构,例如添加更多列或更改列的数据类型和约束。一旦表被创建,你可以使用
INSERT
语句
来向表中插入学生的数据,使用 SELECT
语句
来查询学生的信息,以及使用其他 SQL
语句
来管理表中的数据。
SQL入门书籍【基础、中级、高级】
SQL语言快速入门之二 创建表格 SQL语言中的create table
语句
被用来建立新的数据库表格。Create table
语句
的使用格式如下: create table tablename (column1 data type, column2 data type, column3 data type); 如果用户希望在建立新表格时规定列的
限制
条件,可以使用可选的条件选项: create table tablename (column1 data type [constraint], column2 data type [constraint], column3 data type [constraint]); 举例如下: create table employee (firstname varchar(15), lastname varchar(20), age number(3), address varchar(30), city varchar(20)); 简单来说,创建新表格时,在关键词create table后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的
限制
条件等。注意,所有的SQL
语句
在结尾处都要使用“;”符号。 使用SQL
语句
创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用字母,数字或下划线,名称的
长度
不能超过30个字符。注意,用户在选择表格名称时不要使用SQL语言中的保留关键词,如select, create,
insert
等,作为表格或列的名称。 数据类型用来设定某一个具体列中数据的类型。例如,在姓名列中只能采用varchar或char的数据类型,而不能使用number的数据类型。 SQL语言中较为常用的数据类型为: char(size):固定
长度
字符串,其中括号中的size用来设定字符串的最大
长度
。Char类型的最大
长度
为255字节。 varchar(size):可变
长度
字符串,最大
长度
由size设定。 number(size):数字类型,其中数字的最大位数由size设定。 Date:日期类型。 number(size,d):数字类型,size决定该数字总的最大位数,而d则用于设定该数字在小数点后的位数。 最后,在创建新表格时需要注意的一点就是表格中列的
限制
条件。所谓
限制
条件就是当向特定列输入数据时所必须遵守的规则。例如,unique这一
限制
条件要求某一列中不能存在两个值相同的记录,所有记录的值都必须是唯一的。除unique之外,较为常用的列的
限制
条件还包括not null和primary key等。Not null用来规定表格中某一列的值不能为空。Primary key则为表格中的所有记录规定了唯一的标识符。 向表格中插入数据 SQL语言使用
insert
语句
向数据库表格中插入或添加新的数据行。
Insert
语句
的使用格式如下:
insert
into tablename (first_column,...last_column) values (first_value,...last_value); 例如:
insert
into employee (firstname, lastname, age, address, city) values (‘Li’, ‘Ming’, 45, ‘No.77 Changan Road’, ‘Beijing”); 简单来说,当向数据库表格中添加新记录时,在关键词
insert
into后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。 更新记录 SQL语言使用update
语句
更新或修改满足规定条件的现有记录。Update
语句
的格式为: update tablename set columnname = newvalue [, nextcolumn = newvalue2...] where columnname OPERATOR value [and|or column OPERATOR value]; 例如: update employee set age = age+1 where first_name= ‘Mary’and last_name= ‘Williams’; 使用update
语句
时,关键一点就是要设定好用于进行判断的where条件从句。 删除记录 SQL语言使用delete
语句
删除数据库表格中的行或记录。Delete
语句
的格式为: delete from tablename where columnname OPERATOR value [and|or column OPERATOR value]; 例如: delete from employee where lastname = May; 简单来说,当需要删除某一行或某个记录时,在delete from关键词之后输入表格名称,然后在where从句中设定删除记录的判断条件。注意,如果用户在使用delete
语句
时不设定where从句,则表格中的所有记录将全部被删除。 删除数据库表格 在SQL语言中使用drop table命令删除某个表格以及该表格中的所有记录。Drop table命令的使用格式为: drop table tablename; 例如: drop table employee; 如果用户希望将某个数据库表格完全删除,只需要在drop table命令后输入希望删除的表格名称即可。Drop table命令的作用与删除表格中的所有记录不同。删除表格中的全部记录之后,该表格仍然存在,而且表格中列的信息不会改变。而使用drop table命令则会将整个数据库表格的所有信息全部删除。 以上,我们对SQL语言主要的命令和
语句
进行了较为详细的介绍。应该说SQL
语句
的语法结构和风格还是相当简单和直观的,只要用户结合实践多加练习,一定会在短期内迅速掌握。
赵强老师:Oracle数据库从10g到11g(3)DML
语句
和DDL
语句
学习并掌握DML
语句
:
insert
、update和delete
语句
;并能够使用DDL管理常见的数据库对象:表、视图、序列、索引和同义词。
Mysql
语句
的
长度
限制
1 问题说明: 平时我们在进行批量操作的时候经常会遇到这样一种情况:插入少量数据的时候发现没有任何问题,但是插入大量数据的时候就会报错 Could not execute JDBC batch update,这是因为Mysql
语句
的
长度
是有
限制
的,默认的
长度
为1M,也就是说(包含
insert
在内)的
语句
长度
最大不能超过1M。 &n
MySQL SQL
语句
长度
限制
及解决方案
当遇到SQL
语句
长度
超过
限制
的情况时,我们可以通过分割SQL
语句
、使用临时表或其他优化方法来处理这个问题。在编写复杂的SQL查询或操作时,我们可能会遇到MySQL对SQL
语句
长度
的
限制
。将过长的SQL查询
语句
拆分成多个步骤,将中间结果存储在临时表中,然后在最后一步中从临时表中检索结果。将过长的SQL
语句
分割成多个较短的
语句
,然后分别执行。在某些情况下,通过优化SQL
语句
的结构和逻辑,可以减少SQL
语句
的
长度
。例如,可以使用更简洁的查询方式、减少子查询的数量、使用合适的索引等。2.1 分割SQL
语句
。
MS-SQL Server
34,576
社区成员
254,587
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章