找回密码
 立即注册

QQ登录

只需一步,快速开始

benny111

金牌服务用户

30

主题

73

帖子

285

积分

金牌服务用户

积分
285
benny111
金牌服务用户   /  发表于:2024-5-16 14:39  /   查看:551  /  回复:6
1金币
如题目,可能要通过服务器端命令,但是我试写了,也没有用。请帮助改一下,工程文发了,谢谢,目的:存储过程出来的JSON到表里
下面是存储过程:



CREATE PROCEDURE P_CS001 (@SCDate as datetime,@ECDate as datetime)
as
declare @json NVARCHAR(MAX)
begin
set @json = (select ProjectID,ProjectName from BProject FOR JSON PATH)
select @json
end


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,sql我们不是很了解,这里看了一下您的存储过程,查了一下,如果要是用from json path的话,是要用root指定一下根节点 而且这里写了两个select不清楚是不是这里的原因。 存储过程的写法,您可以检查一下,回到活字格中的话,这里执行存储过程查询出来本身就是有Cloumn1的 在活字格中执行存储过程返回的就是上图中的结果,是一个大的数组(G_PD),数组中有一个对象,对象的键是Cloumn1,值是数组。所以G_PD.0就是去数 ...

6 个回复

倒序浏览
最佳答案
最佳答案
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-5-16 14:39:53
来自 7#
您好,sql我们不是很了解,这里看了一下您的存储过程,查了一下,如果要是用from json path的话,是要用root指定一下根节点


而且这里写了两个select不清楚是不是这里的原因。

存储过程的写法,您可以检查一下,回到活字格中的话,这里执行存储过程查询出来本身就是有Cloumn1的

在活字格中执行存储过程返回的就是上图中的结果,是一个大的数组(G_PD),数组中有一个对象,对象的键是Cloumn1,值是数组。所以G_PD.0就是去数组的第一个元素,也就是cloumn1:project数组的这个对象,然后再使用.去G_PD.0.Column1 就获取到了project这个数组

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2024-5-16 16:06:59
2#
不用@json 直接 只要  select ProjectID,ProjectName from BProject  这个就好了, 可以试试
回复 使用道具 举报
benny111
金牌服务用户   /  发表于:2024-5-16 16:23:05
3#
VVANVI 发表于 2024-5-16 16:06
不用@json 直接 只要  select ProjectID,ProjectName from BProject  这个就好了, 可以试试

大哥存储过程是前提。我当然知道直接select更方便。我就要存储过程出json到表格。使用场景您感兴趣我们可以私聊
回复 使用道具 举报
小白学员
银牌会员   /  发表于:2024-5-16 16:41:40
4#
本帖最后由 小白学员 于 2024-5-16 16:48 编辑

你调试一下看,你看看你拿到的是JSON还是数组???

如果不是JSON,那就处理咯。

确保你拿到的是JSON,你再JSON到表。



我就不给你写过程了,我也是小白。实在搞不定就留个Q吧。
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2024-5-16 18:11:57
5#
这个是因为大佬的json数据结构和导出入json到表格命令设置不一致

修改之后就正常导入了


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
benny111
金牌服务用户   /  发表于:2024-5-17 11:48:43
6#
Nathan.guo 发表于 2024-5-16 18:11
这个是因为大佬的json数据结构和导出入json到表格命令设置不一致

修改之后就正常导入了

以下几个问题看不懂,请回复,谢谢
1)存储过程直接跑出Json是没有Column1,在你在存储过程调用命令后就直接用了「导入JSON数据到表格->JSON数据源-> =G_PD.0.Column1」这个Column1是怎么来呢
2)Column1是「Json序列化命令」才有的(不知道为什么序列化会有Column1)
3)=G_PD.0.Column1  里面的0是什么意思呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部