当前位置:首页 » 存储配置 » 存储过程insert

存储过程insert

发布时间: 2022-11-28 02:31:15

‘壹’ oracle生成insert语句的存储过程怎么写

你可以用oracle的UTL_FILE包,直接将文件生成到服务器上。

下面给你个例子。测试环境windows2008 + oracle11g。

Blob,Clob类型不能导出,导出的文本适用于sqlserver.

createtableTest_Gsh(
aCharvarchar2(20),
bNumnumber,
cDatedate);

insertintoTest_Gsh(aChar,bNum,cDate)
select'这',1,sysdatefromal
unionall
select'是',2,sysdatefromal
unionall
select'测',3,sysdatefromal
unionall
select'试',4,sysdatefromal
unionall
select'UTL_FILE',5,sysdatefromal
unionall
select'的',to_Number(null),Nullfromal
unionall
select'例子',to_Number(null),Nullfromal;

--建立目录
createdirectoryUTL_FILE_GAOas'c:';
--建立过程
createorreplaceprocereout_File_Testas
vFileNamevarchar2(50);
vFilePathvarchar2(30);
out_fileutl_file.file_type;
vBackupTimevarchar2(30);
begin
vBackupTime:=to_Char(sysdate,'yyyymmddhh24miss');
dbms_output.put_line(vBackupTime);
vFilePath:='UTL_FILE_GAO';
vFileName:='Test_Gsh'||vBackupTime||'.sql';
dbms_output.put_line(vFileName);
out_file:=utl_file.fopen(vFilePath,vFileName,'w');
utl_file.put_line(out_file,'--备份表:Test_Gsh');
utl_file.put_line(out_file,'--备份时间:'||vBackupTime);
forrin(select'insertintoTest_Gsh(aChar,bNum,cDate)values('||
casewhenaCharisnullthen'Null'elseChr(39)||aChar||Chr(39)end||','||
casewhenbNumisnullthen'Null'elseto_Char(bNum)end||','||
casewhencDateisnullthen'Null'else'cast('||Chr(39)||to_Char(cDate,'yyyymmddhh24miss')||Chr(39)||'asdateTime)'end||
');'insData
fromTest_Gsh)loop
utl_file.put_line(out_file,r.InsData);
endloop;
utl_file.FCLOSE(out_file);
exception
whenothersthen
dbms_output.put_line(sqlerrm);
utl_file.FCLOSE(out_file);
end;
/

‘贰’ 如何在存储过程中实现插入更新数据

--先在数据库中创建test表,表中有列名为name,类型为varchar(50)
然后先执行
create
procere
proc_insert
@name
varchar(50)
as
begin
insert
into
test
values(@name)--插入数据
end
go
create
procere
proc_update
@newname
varchar(50),@oldname
varchar(50)
as
begin
update
test
set
name=@newname
where
name=@oldname--更新数据
end
go
--其中proc_insert为存储过程名,可自定义
procere可使用简写proc
上面执行完成后调用存储过程
exec
proc_insert
'晓华'--将"晓华"添加到test表中
exec
proc_update
'小明','晓华'
--将表中'晓华'
改为'小明',必须与存储过程变量顺序相同
exec
proc_update
@oldname='小明',@newname='晓华'--与存储过程变量顺序可以不同
drop
procere
proc_insert
删除存储过程proc_insert

‘叁’ oracle存储过程中Insert表名(字段名)values(字段名)

insert
into
表名
values后面括号里应该是值,而不是
字段名

如果是从另外一个表里插入到当前表,应该是这样写:
Insert
Into
TI_AIS_ADDRLINE
(
ADDR_ID
--地址标识
,DIST_CD
--
行政区划代码
,POST_CD
--邮政编码
,POST_CD1
--邮政编码1
,POST_CD2
--邮政编码2
,ADDR_NAME
--地址名称
,RELA_ADDR_ID
--关联地址标识
,RELA_ADDR_NAME
--关联地址名称
,DATA_SRC_CD
--数据来源代码
,LAST_UPD_DATE
--最后更新日期
)
SELECT
ADDR_ID
,DIST_CD
,POST_CD
,POST_CD1
,POST_CD2
,ADDR_NAME
,RELA_ADDR_ID
,RELA_ADDR_NAME
,DATA_SRC_CD
,to_date(LAST_UPD_DATE,
'yyyy-mm-dd
hh24:mi:ss')
FROM
表名
;

‘肆’ 如何在存储过程中判断insert是否成功

ROW_COUNT() x0dx0aROW_COUNT()返回被前面语句升级的、插入的或删除的行数。 这个行数和 mysql 客户端显示的行数及 mysql_affected_rows() C API 函数返回的值相同。x0dx0ax0dx0amysql> INSERT INTO t VALUES(1),(2),(3);x0dx0ax0dx0a问询完成, 表中有3 行 (0.00秒)x0dx0ax0dx0a记录: 3 重复: 0 警告: 0x0dx0ax0dx0amysql> SELECT ROW_COUNT();x0dx0ax0dx0a+-------------+x0dx0ax0dx0a| ROW_COUNT() |x0dx0ax0dx0a+-------------+x0dx0ax0dx0a| 3 |x0dx0ax0dx0a+-------------+x0dx0ax0dx0a表中有1行 (0.00 秒)x0dx0ax0dx0amysql> DELETE FROM t WHERE i IN(1,2);x0dx0ax0dx0a问询完成, 找到2 行 (0.00 秒)x0dx0ax0dx0amysql> SELECT ROW_COUNT();x0dx0ax0dx0a+-------------+x0dx0ax0dx0a| ROW_COUNT() |x0dx0ax0dx0a+-------------+x0dx0ax0dx0a| 2 |x0dx0ax0dx0a+-------------+x0dx0ax0dx0a表中有1行 (0.00 秒)

‘伍’ 如何在存储过程中判断insert是否成功

存储过程的结果无法直接与select 做union,一个办法是建一张临时表,或者使用表变量,通过insert into exec将存储过程的内容暂存起来,最后做union,大概语句像这样:
declare @table table(...);insert into @tableexec zjsj '10901';select * from aunionselect * from @table;

‘陆’ sql存储过程动态Insert参数异常

检查一下表 T_Score_1002的结构,很可能SubSemester列是varchar 类型的。必须保证触发器和存储过程中的@SubSemester变量的类型与表中SubSemester列的类型一致或者兼容。

‘柒’ 如何在存储过程中实现插入更新数据

--先在数据库中创建test表,表中有列名为name,类型为varchar(50)
然后先执行
create procere proc_insert
@name varchar(50)
as
begin
insert into test values(@name)--插入数据
end
go
create procere proc_update
@newname varchar(50),@oldname varchar(50)
as
begin
update test set name=@newname where name=@oldname--更新数据
end
go
--其中proc_insert为存储过程名,可自定义 procere可使用简写proc
上面执行完成后调用存储过程
exec proc_insert '晓华'--将"晓华"添加到test表中
exec proc_update '小明','晓华' --将表中'晓华' 改为'小明',必须与存储过程变量顺序相同
exec proc_update @oldname='小明',@newname='晓华'--与存储过程变量顺序可以不同

drop procere proc_insert 删除存储过程proc_insert

‘捌’ 在存储过程中编写INSERT语句,通过怎么样的方法或取得返回值,让我知道插入的数据成功了呢

可以给这个存储过程定义一个返回的变量
例如
declare @CS int
exec 存储过程 ‘’,‘’,@CS
select @CS
这个返回值 可以在存储过程里,当你Insert 成功的时候
给予返回值赋予个值

‘玖’ 呵呵,insert 语句的存储过程如何编写

INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行。
语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
插入新的行
"Persons" 表:
LastName FirstName Address City
Carter Thomas Changan Street Beijing
SQL 语句:
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
结果:
LastName FirstName Address City
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing
在指定的列中插入数据
"Persons" 表:
LastName FirstName Address City
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing
SQL 语句:
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
结果:
LastName FirstName Address City
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing
Wilson Champs-Elysees

希望能帮到你。

‘拾’ 如何在存储过程中判断insert是否成功

ROW_COUNT()
ROW_COUNT()返回被前面语句升级的、插入的或删除的行数。 这个行数和 mysql 客户端显示的行数及 mysql_affected_rows() C API 函数返回的值相同。

mysql> INSERT INTO t VALUES(1),(2),(3);

问询完成, 表中有3 行 (0.00秒)

记录: 3 重复: 0 警告: 0

mysql> SELECT ROW_COUNT();

+-------------+

| ROW_COUNT() |

+-------------+

| 3 |

+-------------+

表中有1行 (0.00 秒)

mysql> DELETE FROM t WHERE i IN(1,2);

问询完成, 找到2 行 (0.00 秒)

mysql> SELECT ROW_COUNT();

+-------------+

| ROW_COUNT() |

+-------------+

| 2 |

+-------------+

表中有1行 (0.00 秒)

热点内容
如何把手机改安卓10 发布:2024-05-05 17:39:07 浏览:496
我的世界怎么扩容服务器内存 发布:2024-05-05 17:19:54 浏览:48
java读取文件字符 发布:2024-05-05 17:15:18 浏览:11
三星怎么应用加密 发布:2024-05-05 17:13:18 浏览:152
cad字体在那个文件夹 发布:2024-05-05 17:08:20 浏览:331
什么时候用编译器 发布:2024-05-05 17:08:20 浏览:766
应急救援脚本 发布:2024-05-05 17:08:17 浏览:338
我的世界搭建无正版验证服务器 发布:2024-05-05 17:03:48 浏览:819
我的世界服务器地址宝可梦 发布:2024-05-05 17:00:16 浏览:256
dede企业源码 发布:2024-05-05 16:57:53 浏览:787