谁帮我改一下这存储过程 100分

作者&投稿:仁步 (若有异议请与网页底部的电邮联系)
这段存储过程怎么改?~

我用Oracle给你改改吧:)
create or replace procedure insert_info
(
@title in varchar2,
@userid in nvarchar2,
@pid in int,
@content in nvarchar2,
@ispass in int,
@ishot in int,
@sdata in datetime,
@ip in varchar2,
@dw in varchar2,
@b_money in money,
@clicknum in int
) is
begin
insert into fu_info(title,userid,pid,content,ispass,ishot,sdata,ip,dw,b_money,clicknum)
values(@title,@userid,@pid,@content,@ispass,@ishot,@sdata,@ip,@dw,@b_money,0);
end;
end insert_info;

执行时这么写:
begin
dbms_output.put_line('begin.');
insert_info('标题','用户名',2,'内容',0,0,getdate(),'11.22.55.3','555',350.23,0);
dbms_output.put_line('end.');
end;

insert 插入不需要where

你是修改数据吧
Create proc UpdateImage
(
@id bigint,
@UpdateImage Image
)
As
update employerInfo set Picture = @UpdateImage
where ID=@id
GO

你在exec(@sql) 前面加个
print @sql
然后看看@sql到底是什么,我认为不会达到8000字符的级别。也就是说问题很可能不是出在这里,我拼的比你长的多了都不到8000字符,你这才多少行,你又没有用游标贴。
贴一点给你看
set @sentence = ' insert ' + @client_db_prefix + 'fact_audit_kpi_by_POP] '+
' select fap.client_id, fap.audit_run_id, isnull(faa.audit_run_week_id, fap.audit_run_week_id), '+
' isnull(faa.cycle_year_id, fap.cycle_year_id), isnull(faa.cycle_id, fap.cycle_id), '+
' isnull(faa.cycle_week_id, fap.cycle_week_id), fap.popdb_id, fap.user_id, '+
' case when faa.popdb_id is not null then 1 when ffa.popdb_id is not null then 2 else 0 end, '+
' fap.is_model_POP, fap.is_fake_POP, 0, '+
' case when (faa.input_error_num = 0 and faa.user_id = faa.inputter_id) then 1 '+
' when (faa.Input_error_num>0 and faa.user_id = faa.inputter_id) then 0 else null end as input_score, '+
' case when faa.is_logical_check = 1 then case when (faa.Logical_check is null or faa.Logical_check='''') then 1 else 0 end '+
' else null end as logical_score, '+
' case when faa.Testification_id=1 then case when faa.check_result_id=1 then 1 else 0 end '+
' when faa.Testification_id=5 then 0 else null end as testification_score, '+
' case when (ffa.popdb_id is null and faa.popdb_id is not null) then '+
' case when fap.is_model_pop = 1 and fap.is_fake_pop=0 then case when faa.model_checkouts=0 then '+
' case when faa.audit_checkouts=faa.model_checkouts then 1 else 0 end '+
' when faa.model_checkouts=1 then '+
' case when faa.audit_checkouts>0 and faa.audit_checkouts<=faa.model_checkouts+1 then 1 else 0 end '+
' when faa.model_checkouts>=2 and faa.model_checkouts<=5 then '+
' case when faa.audit_checkouts >= faa.model_checkouts-1 and faa.audit_checkouts <= faa.model_checkouts+1 then 1 else 0 end '+
' else '+
' case when faa.audit_checkouts >= faa.model_checkouts*0.8 and faa.audit_checkouts <= faa.model_checkouts*1.2 then 1 else 0 end '+
' end else null end else null end as model_pop_score, '+
' case when (faa.is_fake_pop=1 and faa.valid=1) then 0 '+
' when ((faa.is_fake_pop=1 and faa.valid=3) or ffa.is_fake_pop=1) then 1 '+
' else null end as fake_POP_score, '+
' case when (ffa.popdb_id is null and faa.popdb_id is not null) then case when faa.Fake_SKU is null then 1 else 0 end else null end as fake_sku_score, '+
' cast(round((sum(case when (ffa.popdb_id is not null and ffa.is_fake_pop=0) then 1 else 0 end) - '+
' sum(case when (ffa.Failed_audit_check=0 and ffa.is_fake_pop=0) then 1 when (ffa.Failed_audit_check=1 and ffa.is_fake_pop=0) then 0 else null end))*1.0 / '+
' nullif(sum(case when (ffa.popdb_id is not null and ffa.is_fake_pop=0) then 1 else 0 end), 0), 2) as numeric(5,4)) as failed_audit_score, '+
' case when (faa.popdb_id is null and ffa.popdb_id is null) then 0 else 1 end as progress_score, '+
' fap.Is_compliant, case when (fap.valid=3 or faa.valid=3 or ffa.valid=3) then 3 else 1 end as valid '+
' from ' + @client_db_prefix + 'fact_audit_plan] fap '+
' left join ' + @client_db_prefix + 'fact_actual_audit_by_POP] faa '+
' on fap.client_id = faa.client_id and fap.audit_run_id = faa.audit_run_id '+
' and fap.popdb_id = faa.popdb_id '+
' left join ' + @client_db_prefix + 'fact_failed_audit_by_POP] ffa '+
' on fap.client_id = ffa.client_id and fap.audit_run_id = ffa.audit_run_id '+
' and fap.popdb_id = ffa.popdb_id and fap.valid = ffa.valid '+
' where fap.audit_run_id = ' +cast(@audit_run_id as varchar(10)) +
' and fap.client_id = ' + cast(@client_id as varchar(2)) +
' group by fap.client_id, fap.audit_run_id, faa.audit_run_week_id, fap.audit_run_week_id, '+
' faa.cycle_year_id, fap.cycle_year_id, faa.cycle_id, fap.cycle_id, faa.cycle_week_id, fap.cycle_week_id, '+
' fap.popdb_id, fap.user_id, ffa.popdb_id, fap.is_model_POP, fap.is_fake_POP, faa.input_error_num, '+
' faa.user_id, faa.inputter_id, faa.Logical_check, faa.is_logical_check, faa.Testification_id, faa.check_result_id, '+
' faa.model_checkouts, faa.audit_checkouts, faa.valid, faa.is_fake_pop, ffa.is_fake_pop, faa.Fake_SKU, '+
' ffa.Failed_audit_check, faa.popdb_id, fap.Is_compliant, fap.valid, ffa.valid '
我这才4000出头的字符数,查询出来的结果有250000条记录,因为是企业级数据库吗,你这个肯定不到的

---------试一下--
ALTER PROCEDURE proGet系数情况
AS
SET NOCOUNT ON
declare @sql varchar(8000)
set @sql = 'select a.规格'
select @sql =@sql+ ',isnull(sum(case when b.工序id= cast(c.id as varchar) then 系数 end),null),[ c.工序 ] from (select id,工序 from 工序表 ) as c '
select @sql = @sql+' from 规格表 a '+'left join 记工系数表 b on a.id=b.规格id '+'group by a.id,a.规格'
--print @sql
exec(@sql)
RETURN
SET NOCOUNT OFF
go

-----------

看你给出的存储过程怎么算字数也不会超8000,除非你存储过程还有其它参数传入.做交叉表之类的.

----------再试一下
ALTER PROCEDURE proGet系数情况
AS
SET NOCOUNT ON
declare @sql varchar(8000)
set @sql = 'select a.规格'
select @sql =@sql+ ',isnull(sum(case when b.工序id=''' + cast(c.id as varchar) + ''' then 系数 end),null), [''' + c.工序 + ''']'
from (select id,工序 from 工序表 ) as c

select @sql = @sql+' from 规格表 a
left join 记工系数表 b on a.id=b.规格id
group by a.id,a.规格'
--print@sql
exec(@sql)
RETURN
-------


谁帮我改一下这存储过程 100分
print @sql 然后看看@sql到底是什么,我认为不会达到8000字符的级别。也就是说问题很可能不是出在这里,我拼的比你长的多了都不到8000字符,你这才多少行,你又没有用游标贴。贴一点给你看 set @sentence = ' insert ' + @client_db_prefix + 'fact_audit_kpi_by_POP] '+ ' select fap....

SQL的 求教下修改这个存储过程是什么意思
帮你注释一下:ALTER PROCEDURE [dbo].[GetCallNum] --修改一个名为GetCallNum的存储过程 VPip NVARCHAR(128), --输入参数1 QueueDate NVARCHAR(128), --输入参数2 Ret NVARCHAR(128) OUTPUT --输出参数 AS --指定以下为存储过程的代码 BEGIN SET NOCOUNT ON; --设定不返回代码执行时...

Win10怎么更改默认存储位置
1、点击开始菜单,点击设置图标;然后点击“系统”选项;2、进入系统设置的界面然后再点击【存储感知】3、在这里可以看到它默认的是保存在C盘下面,点击一下下面的按钮就可以开始更改存储的位置。更改音乐,图片,视频,文档默认保存位置这些下面都有相关的设置。4、选择一个想存储的盘符,一般建议选择一个专门...

怎么改变储存位置
目前vivo手机没有设置默认存储位置总开关,需进入具体应用设置中修改文件存储位置,若没有选项开关,则说明该应用不支持,如遇存储空间不足,可手动将部分文件转移至SD卡。可以将文件在内部存储和SD卡中移动,方法:进入文件管理--手机存储\/内部存储\/所有文件--长按选中文件--剪切--进入SD卡--粘贴,即可...

vivo手机的存储位置怎么更改
vivo智能手机设置默认存储位置方法:进入手机设置--更多设置--应用程序--首选安装位置设置安装存储位置。具体操作步骤(以vivo X5Pro为例):1、待机桌面点击设置 2、更多设置 3、选择应用程序 4、点击首选安装位置 5、选择需要安装的位置即可 注:部分机型以及软件不支持更改数据存储位置到SD卡。

帮我把这个SqlServer的存储过程改成Oracle的存储过程,我对Oracle的语法...
-- oracle的存储过程中不能直接向屏幕返回一个结果集的。-- 你可以将结果写到一个临时表中,在查询这个表 create or replace procedure sp_select_result(AGradeId int, AStudentName varchar2, ASubjectNo int) IS type ty is ref cursor;tCur ty;sqlStr varchar2(2000);LStudentNo int;L...

华为手机怎么更改内存?
如果您的手机支持插入外置存储卡,建议您插入外置存储卡后进入“设置 > 存储 > 默认存储位置”,将“默认存储位置”修改为外置存储卡,这样也可以使手机本身内存不被过多占用。

如何更改“我的文档”存储位置
一、修改注册表 在Windows操作系统中,注册表是一个用于存储系统、应用程序和用户设置的数据库。通过修改注册表,可以更改“我的文档”的默认存储位置。步骤如下:1.打开“运行”对话框,输入“regedit”并回车,打开注册表编辑器。2.在编辑器中,找到以下路径:HKEY_CURRENT_USER\\Software\\Microsoft\\...

Win10系统下怎样修改图片文件默认存储目录
一、Win10相机文件储存位置 通过Win10相机程序得到的照片文件,默认保存在C:用户当前用户图片本机照片中。二、更改Win10相机文件储存位置 打开上面提到的文件夹,对着本机照片文件夹单击鼠标右键,菜单中选属性,在本机照片属性对话框,点击选择“位置”选项卡,再点击“移动”,然后选择自己认为合适的保存...

使用Navicat for MySQL工具创建存储过程,参数老是告诉我错误,请大神...
可以把整个存储过程贴出来,目测是小细节.如果你是用下面这种方式来创建,传入参数是写在那个框里的- -||

图木自治县市19762957536: 谁帮我改下oracle中的这个存储过程啊 -
茌咏丹七: dorp create 必须用动态 create or replace procedure my_c_t(tname char,c1 char ,c2 char) as i integer; str varchar2(50); begin str:= 'drop table '||tname; execute immediate str; str:= 'create table '||tname|| '('||c1||' char,'||c2||' char) '; execute immediate str;...

图木自治县市19762957536: 谁能给改下这个存储过程?
茌咏丹七: 不明白你的意思:特别是(控件类型的)(自己去填写这个编号,然后让它自动生成!) 不明白你想要的效果. 你是要把它改成变量吗.若是的话如下: alter proc proc_Createhouseid @tempId varchar(20),--FW0001的临时存储 @houseid ...

图木自治县市19762957536: 帮忙修改一下 这个存储过程(SQL Server) -
茌咏丹七: create procedure proc_dayreport1 AS declare @indexviews int,@person_indexviews int ,@playall int,@kokplay int,@mvplay int, @zxychplay int ,@hjychplay int,@begin datetime ,@end datetime,@begin1 datetime,@end1 datetime--首页访问总量 ...

图木自治县市19762957536: 谁能告诉这个存储过程用java 怎么调用!100分 -
茌咏丹七: 这里面主要有两种写法,目前楼主这个还是最简单的存储过程,只需要传入一个参数,没有返回值,而处理游标返回值是比较麻烦的,当然返回楼主正题,如下//获取一个连接Connection conn = DriverManager.getConnection(url, user, pwd);//...

图木自治县市19762957536: 帮我改个sql存储过程(很简单的),谢谢 -
茌咏丹七: ALTER PROCEDURE dbo.userol @userid int, @nowtime datetime AS begin declare @Inte int select @Inte=userid from statusn set @nowtime=convert(varchar(12),getdate(),108) begin if(@Inte=@userid) begin update statusn set lasttime =@...

图木自治县市19762957536: 帮我改下这段mysql存储过程,谢谢 -
茌咏丹七: drop procedure if exists xsp_pay;CREATE PROCEDURE xsp_pay(in parameter1 int,in parameter2 int)BEGINDECLARE v_a int default 0;DECLARE v_b int default 0;DECLARE V_C int default 0;DECLARE v_d int default 0;set v_a = parameter1;...

图木自治县市19762957536: 帮我改下这段mysql存储过程,谢谢
茌咏丹七: BEGIN #Routine body goes here... declare p_Num int; declare p_UserID int; select UserID into p_UserID from alluser where LoginName=p_name; select Num into p_Num from playerbaggoodsinfo where UserID=p_UserID and GoodsId=8945; if p_...

图木自治县市19762957536: 帮我看下oracle存储过程,另外,怎么调试存储过程?分不多,我也没办法了. -
茌咏丹七: 给你改了一下,错误就不一一指给你了,你跟你的对比一下create or replace PROCEDURE DROP_OBasob_name varchar2(100);ob_type varchar2(100);sql_str varchar2(2000);cursor my_cursor is select object_name,object_type from user_...

图木自治县市19762957536: 有个建表的存储过程报错,谁能帮我修改一下.谢谢! -
茌咏丹七: create proc tFFF_testas declare @tbname1 varchar(80) --原表名declare @tbname2 varchar(80) --新表名declare @today varchar(80) --时间declare @sql varchar(5000)set @tbname1 = 'SMS_CUSTROCDETAIL' --获得系统当前的日期时间 set @...

图木自治县市19762957536: 谁能帮我修改一下mysql存储过程的代码 -
茌咏丹七: 1) declare a char(16); declare done boolean default false; declare cur cursor for select * from `test`; declare continue handler for not found set done = true;2) fetch cur into a;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网