- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 SQL Server sp_send_dbmail 从 java 发送电子邮件
从 SQL Server 本身内部,以下内容可以很好地发送 HTML 电子邮件。 [IE。我已按照以下步骤正确设置了发送电子邮件的所有内容 Microsoft's instructions]
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'example profile',
@recipients = 'me@example.com',
@body = @tableHTML,
@body_format = 'HTML' ,
@subject = 'Email from SQL Server';
但是当尝试使用以下代码从 java 发送时
public static synchronized int sendEmail(String profileName,String recipients,String body, String body_format,String subject) {
final String sendEmailStr = "{execute msdb.dbo.sp_send_dbmail (?,?,?,?,?,?)}";
dbConn = DBConnection.getInstance();
Connection conn = dbConn.getConnection();
CallableStatement stmt = null;
int result = RESULT_FAILED;
try {
stmt = conn.prepareCall(sendEmailStr);
stmt.setString("profile_name", profileName);
stmt.setString("recipients", recipients);
stmt.setString("body", body);
stmt.setString("body_format", body_format);
stmt.setString("subject", subject);
stmt.registerOutParameter(6, java.sql.Types.INTEGER);
stmt.execute();
result = stmt.getInt(6);
} catch(SQLException e) {
System.out.println(e);
Log.getInstance().write("Exception on sendEmail " + e.toString());
} finally {
try {
stmt.close();
dbConn.returnConnection(conn);
} catch(SQLException e) {
System.out.println(e);
Log.getInstance().write("Exception on sendEmail " + e.toString());
}
}
return result;
}
我收到以下异常com.microsoft.sqlserver.jdbc.SQLServerException:com.microsoft.sqlserver.jdbc.SQLServerException:未为存储过程定义参数profile_name
我做错了什么?
最佳答案
请更改您的查询字符串以使用call
,如下所示:
final String sendEmailStr "{ call msdb.dbo.sp_send_dbmail (?,?,?,?,?,?) }";
要使用当前数据库中的存储过程,请在当前数据库中执行此命令,以通过本地过程包装 MSDB 调用:
Use [MyDatabase];
CREATE PROCEDURE [MyDB].[SEND_EMAIL_DB]
@profile_name2 varchar(max),
@recipients2 varchar(max),
@body2 varchar(max),
@body_format2 varchar(max),
@subject2 varchar(max),
@p_result int OUTPUT
AS
BEGIN
exec msdb.dbo.sp_send_dbmail @profile_name=@profile_name2,
@recipients=@recipients2,@body=@body2,
@body_format=@body_format2,@subject=@subject2
END
关于java - 使用 SQL Server sp_send_dbmail 从 java 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055162/
我正在尝试使用 sp_send_dbmail 发送附件。附件存储在表的 varbinary(MAX) 列中。这是我的查询: EXEC msdb.dbo.sp_send_dbmail @
我正在研究一个 SQL 存储过程,它应该发送带有查询结果的附件。 我正在使用 sp_send_dbmail发送电子邮件。 在我想发送的查询中,我将 加入到一个表变量中。当我执行存储过程时,我收到一条错
我在 SQL Server 2008 中使用 sp_send_dbmail 发送查询结果。我将查询移动到一个过程中,并尝试在 sp_send_dbmail 过程中使用该过程,如下所示: EXEC ms
我使用的是 SQL Server 2008 R2。当我执行 sp_send_dbmail 时,我无法更改 DBA 指定的默认地址 FROM_ADDRESS。如果不起作用为什么还有这个参数? 如何指定“
我在此 MSDN 页面上使用类似于示例 C 的内容: http://msdn.microsoft.com/en-us/library/ms190307.aspx DECLARE @tableHTML
我已经写了一个SQL查询。但这给了我一个错误。 DECLARE @Delimiter Char(1) SET @Delimiter = CHAR(9) EXEC MSDB.dbo.sp_Send_DB
我正在尝试使用 sp_send_dbmail 发送电子邮件。我需要它将一个查询作为附件发送,另一个查询作为电子邮件正文的一部分发送。问题是 sp_send_dbmail 只有一个 @query 参数,
我需要发送带有文件附件的电子邮件。附件必须来自图像类型数据字段。在查询窗口和存储过程中运行以下代码时,不会发送电子邮件。在查询窗口中,它只显示“命令成功完成”,但没有电子邮件。 EXEC msdb.
我有一个每天晚上运行的存储过程,它应该将查询结果发送给多个收件人。然而,在大多数情况下,它最终会在一分钟后发送一封重复的电子邮件。我使用的代码如下(所有电子邮件和数据库引用均已更改): EXEC ms
正如标题所说,我正在尝试制作一个存储过程,用于将电子邮件发送到数据库中存储的地址,通常包括多个收件人。我已经尝试了几种方法来解决这个问题,但我认为我正在碰壁,我会很感激任何人提供的任何意见。我遇到的主
有没有办法为我的数据库中的用户提供访问权限以执行 msdb.dbo.sp_send_dbmail 无需将它们添加到 MSDB 数据库和 DatabaseMailUserRole? 我试过这个: ALT
我在 SQL2005 中使用 sp_send_dbmail 发送带有附件中结果的电子邮件。发送附件时,它是 UCS-2 编码的,我希望它是 ANSI 或 UTF-8。 这是 SQL EXEC msdb
我们使用 sp_send_dbmail 来通知我们某些问题,有时我们会在电子邮件中附加文件。有时我们会收到错误 32(文件正在使用)错误。在这种情况下,我已经将一些代码放在一起发送没有附件的电子邮件,
我正在使用 SQL Server 的 sp_send_dbmail 存储过程通过数据库发送邮件。 但是当我执行该程序时,它会关闭数据库邮件程序。我尝试通过 sysmail_start_sp 再次启动它
我在 sp_send_dbmail 中使用 @query 边界发送一封包含警告列表的电子邮件(警告由 @query 边界返回)。 @query 边界在电子邮件中以文本形式列出。从 @query 边界返
我正在使用 msdb.dbo.sp_send_dbmail 发送电子邮件。有时电子邮件不发送。我有失败的电子邮件列表。 SELECT TOP 10 * from msdb.dbo.sysmail_ev
我收到此错误: Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1 The EXECUTE permission was deni
我正在尝试在 SQL Server 2008 中创建一个存储过程,用于发送插入到出站表中的电子邮件。我正在使用 sp_send_dbmail。它使用游标遍历出站表。我还想删除包含我已发送的电子邮件的记
我正在使用 msdb.dbo.sp_send_dbmail 发送电子邮件。有时电子邮件不发送。我有失败的电子邮件列表。 SELECT TOP 10 * from msdb.dbo.sysmail_ev
我正在寻找一种方法来检查使用 sp_send_dbmail 排队的特定电子邮件是否最终从我们的 Exchange 服务器成功发送。我查看了系统表 msdb.dbo.sysmail_mailitems
我是一名优秀的程序员,十分优秀!