1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 271|回复: 0

[求助] 求教pyodbc如何调用带output参数的存储过程

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-22 08:26 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助


在SQLserver创建了一个存储过程,想通过pyodbc来调用这个存储过程,得到存储过程的@output值。求教执行存储过程的代码怎么写呢?连接数据库是实现了的,但执行存储过程的语句始终报错。
自己写的有错的语句:cs_output = cursor.execute("EXEC [dbo].[导入-报表定制-收入日监控-CHN三后收入日监控](?, %d)", (output_param)).fetchval()



USE [分析通报临存]
GO
/****** Object:  StoredProcedure [dbo].[导入-报表定制-收入日监控-CHN三后收入日监控]    Script Date: 2024/12/22 7:39:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[导入-报表定制-收入日监控-CHN三后收入日监控] @output INT OUTPUT
AS
  
  IF EXISTS (select * from [分析通报临存].INFORMATION_SCHEMA.TABLES WHERE table_name ='报表定制-收入日监控-CHN三后收入日监控-导入临存')
  DROP TABLE [分析通报临存].dbo.[报表定制-收入日监控-CHN三后收入日监控-导入临存]
  
  CREATE TABLE [分析通报临存].[dbo].[报表定制-收入日监控-CHN三后收入日监控-导入临存] (
  [数据日期] date NULL ,
  [分公司] nvarchar(255) COLLATE Chinese_PRC_CS_AS_KS_WS NULL ,
  [区域] nvarchar(255) COLLATE Chinese_PRC_CS_AS_KS_WS NULL ,
  [分局] nvarchar(255) COLLATE Chinese_PRC_CS_AS_KS_WS NULL ,
  [网格] nvarchar(255) COLLATE Chinese_PRC_CS_AS_KS_WS NULL ,
  [指标] nvarchar(255) COLLATE Chinese_PRC_CS_AS_KS_WS NULL ,
  [数值] numeric(28,8) NULL )

  BULK INSERT [分析通报临存].[dbo].[报表定制-收入日监控-CHN三后收入日监控-导入临存]
  FROM 'D:\\档案资料\临时文件\\解压命名\\CHN三后日收入监控.txt'
  WITH (  FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', FIRSTROW=2)
  
  INSERT INTO [分析通报临存].dbo.[报表定制-收入日监控-CHN三后收入日监控]
  SELECT [源表].[数据日期],[源表].[分公司],[源表].[区域],[源表].[分局],[源表].[网格],[源表].[指标],[源表].[数值]
  FROM [分析通报临存].[dbo].[报表定制-收入日监控-CHN三后收入日监控-导入临存] AS [源表]
  LEFT OUTER JOIN (SELECT DISTINCT [存档1].[数据日期], [存档1].[指标]
  FROM [分析通报临存].dbo.[报表定制-收入日监控-CHN三后收入日监控] AS [存档1]) AS [存档]
  ON [源表].[数据日期] = [存档].[数据日期] AND [源表].[指标] = [存档].[指标]
  WHERE [源表].[数据日期] IS NOT NULL AND [存档].[数据日期] IS NULL AND [源表].[指标] IS NOT NULL AND [存档].[指标] IS NULL

  SET @output = @@ROWCOUNT

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-3-28 04:36 , Processed in 1.034701 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表