我正在开发我的第一个存储过程,SQL Server 2008 R2
并需要有关错误消息的建议.
过程或函数xxx指定的参数太多
我执行[dbo].[M_UPDATES]
调用另一个调用的存储过程的存储过程后得到的etl_M_Update_Promo
.
[dbo].[M_UPDATES]
通过右键单击和"执行存储过程" 调用(代码见下文)时,查询窗口中显示的查询为:
USE [Database_Test]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[M_UPDATES]
SELECT 'Return Value' = @return_value
GO
Run Code Online (Sandbox Code Playgroud)
输出是
消息8144,级别16,状态2,过程etl_M_Update_Promo,行0
过程或函数etl_M_Update_Promo指定了太多参数.
问题:此错误消息的确切含义是什么,即参数太多?如何识别它们?
我发现有几个线程询问此错误消息,但提供的代码与我的不同(如果不是另类语言C#
).所以没有一个答案解决了我的SQL
查询问题(即SP).
注意:下面我提供了用于两个SP的代码,但是我更改了数据库名称,表名和列名.所以,请不要担心命名约定,这些只是示例名称!
提前感谢任何建议和想法!
(1)SP1的代码[dbo].[M_UPDATES]
USE [Database_Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ M_UPDATES] AS
declare @GenID bigint
declare @Description nvarchar(50)
Set @GenID = SCOPE_IDENTITY()
Set @Description = 'M Update'
BEGIN
EXEC etl.etl_M_Update_Promo @GenID, @Description …
Run Code Online (Sandbox Code Playgroud) 为了清理一些凌乱的数据,我想开始使用管道%>%,但是如果gsub()不在管道的开头,我就不能使R代码工作,应该发生得晚(注意:这个问题不关心适当导入,但数据清理)
简单的例子:
df <- cbind.data.frame(A= c("2.187,78 ", "5.491,28 ", "7.000,32 "), B = c("A","B","C"))
Run Code Online (Sandbox Code Playgroud)
A列包含字符(在本例中为数字,但也可以是字符串),需要清除.步骤是
df$D <- gsub("\\.","",df$A)
df$D <- str_trim(df$D)
df$D <- as.numeric(gsub(",", ".",df$D))
Run Code Online (Sandbox Code Playgroud)
一个人可以轻易地解决这个
df$D <- gsub("\\.","",df$A) %>%
str_trim() %>%
as.numeric(gsub(",", ".")) %>%
Run Code Online (Sandbox Code Playgroud)
问题是第二个gsub,因为它要求输入....实际上是前一行的结果.
请问,任何人都可以解释如何在管道中进一步使用像gsub()这样的函数吗?非常感谢!
系统:R 3.2.3,Windows
我是R的新手,需要有关如何使用参数s和beta从Pareto分布的有限区域中抽取随机数的建议.(系统:Windows 7,R 2.15.2.)
(1)我在矢量数据$ t中有数据; 每个单一数据点我都会调用data&tx
对于这些数据,Pareto分布的参数s和beta是根据https://stats.stackexchange.com/questions/27426/how-do-i-fit-a-set-of-data-to-a-pareto估算的.-配送-在-R
pareto.MLE <- function(X)
{
n <- length(X)
m <- min(X)
a <- n/sum(log(X)-log(m))
return( c(m,a) )
}
Run Code Online (Sandbox Code Playgroud)
(2)现在我需要绘制尽可能多的随机数(RndNew)von这个Pareto分布(s,beta,见(1)),因为有观测值(=数据点:数据$ tx).对于绘制,绘制随机数的区域必须限制在RndNewx> = data $ tx的区域; 换句话说:RndNewx绝不能小于相应的数据$ tx.
问题:如何告诉R限制帕累托分布的区域,从中抽取随机数为RndNewx> = data $ tx?
万分感谢您的帮助!