找回密码
 立即注册

QQ登录

只需一步,快速开始

swejet 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-24 18:40  /   查看:3351  /  回复:13
100金币
本帖最后由 swejet 于 2021-8-25 08:51 编辑

先把需求说一下:

有一个设备运行表,每天记录设备的运行情况。每天运行的设备不确定,只有运行的设备才有记录,因此每天生成的设备运行记录的条数是不确定的,每天都不一样。

这个数据库不开放,只提供了一个数据API接口,通过这个接口把数据请求回来。我使用“发送HTTP请求命令”向这个api接口发送请求,返回的数据是一个流,我通过流转字符串把请求回来的数据先转成字符串,这个字符串是一个xml格式,再把xml格式转成json,再把json反序列化,最后存入另外一个我有权限的数据库中。

可以理解为,我是合法地把数据从一个数据库中复制到另一个数据库中,因为源数据库不开放,只能用这种方式获取数据。

数据量非常大,如果一次性请求回来就崩了,api接口也不允许这么大量的数据请求,一次请求只能请求回一天的运行记录。当我要请求回来10年的数据时,我就只能通过循环命令来做了。

发送请求时,我是把一条 oracle 的查询语句当成请求的参数给接口发回去的,这个参数是以下一条语句:

select * from 设备运行表 where run_date = to_date('2000-01-01','yyyy-mm-dd')

我要在每一次循环中替换上面这条语句中的那个日期,而且每循环一次,日期加1



这是外层循环,我初始设定了 365,即一次取一年的数据,那么

问题1:当命令执行进来的时候,“当前循环索引值变量”是不是会自动加1?

在发送请求的命令中的参量:



就是这个sql参量



我在这里,要怎么才能把这个字符串中变化的那个日期与循环结合起来呢?

我原来以为这里可以写 excel 的公式,我可以用 & 拼串,可是这是服务端命令,excel 公式不好使了

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

13 个回复

正序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-8-26 17:08:45
14#
swejet 发表于 2021-8-26 14:44
咱接着来,下一个不明白的地方:

有问必答系列,这个日期是服务端命令定义的入参


特地找同事要了这个demo,上传给您
不懂的咱接着问

本帖子中包含更多资源

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

x
回复 使用道具 举报
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-26 14:44:33
13#
Joe.xu 发表于 2021-8-26 11:40
这个理解非常正确

咱接着来,下一个不明白的地方:



这个设置变量命令:日期文本


日期文本是变量名,这个可以理解,不理解的是下面的变量值,变量值是这么写的:

=TEXT(日期,"yyyy-mm-dd")

excel 的 TEXT 函数我是理解的,是把一个变量按text函数第二参数所指定的格式转换为文本字符串,我不明白的是公式里写在value这个参数位置的日期

这个日期是一个变量吗?这个变量在哪里定义的?
这个日期是前端页面上的一个单元格的名称吗?

下面程序执行起来后,可以看出,日期的值是44424,这个值换算成日期是2021/8/26,可是我不理解的是在公式里直接写日期这两个字,这个日期是什么?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-8-26 11:40:20
12#
swejet 发表于 2021-8-26 10:42
所以在 David.Zhong 的回答中,这个名为”数组参数“的变量其实确实是没有用到的对吧?我没看懂就是在这 ...

这个理解非常正确
回复 使用道具 举报
feng2575悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2021-8-26 11:02:33
11#
路过围观如何解决
回复 使用道具 举报
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-26 10:42:25
10#
Joe.xu 发表于 2021-8-26 10:25
是的,数组参数是一个变量,
只不过这个这个循环可能用不到他本身,
只是利用他来开启一个数组,他也可 ...

所以在 David.Zhong 的回答中,这个名为”数组参数“的变量其实确实是没有用到的对吧?我没看懂就是在这里,我看不到这个”数组参数“被调用的痕迹

我是不是可以这样理解,如果我直接写一个数值,那么就是一个定长循环,这个数值就是循环的次数,步长永远是1,如果写”=“并且跟一个字符串,就是定义了一个名字是这个字符串的数组,然后在循环体中,可以给这个数组的元素去赋值,去做各种操作

这样理解对吗?

评分

参与人数 1金币 +5 收起 理由
Joe.xu + 5 很给力!

查看全部评分

回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-8-26 10:25:05
9#
swejet 发表于 2021-8-26 09:27
"数组参数"是一个变量名吗?

是的,数组参数是一个变量,
只不过这个这个循环可能用不到他本身,
只是利用他来开启一个数组,他也可以是一个数字,比如100,
就代表要循环100次
回复 使用道具 举报
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-26 09:27:51
8#
本帖最后由 swejet 于 2021-8-26 10:22 编辑
阿享 发表于 2021-8-25 22:15
数组参数就是数组类型的变量,
=index就是1,2,3...
=item就是每次循环取出来的值 = 数组

"数组参数"是一个变量名吗?比如,我写成 =value_array 可以吗?
回复 使用道具 举报
阿享悬赏达人认证
银牌会员   /  发表于:2021-8-25 22:15:43
7#
swejet 发表于 2021-8-25 20:03
我比较笨,没太看懂,是好多地方都没看懂,先说第一个:

数组参数就是数组类型的变量,
=index就是1,2,3...
=item就是每次循环取出来的值 = 数组[index]
你可以先 生成查询的日期到数据库,再取出来循环拼接sql
回复 使用道具 举报
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-25 20:03:19
6#
我比较笨,没太看懂,是好多地方都没看懂,先说第一个:



这里“指定循环次数或循环数组”里写的“=数组参数”,这个数组参数是一个变量吗?

这里的官方说明如下:
如果指定了循环次数,可使用 =Index 获取当前的循环索引值,索引值从1开始。
如果指定了循环数组,也可使用 =Index 获取当前的循环索引值,还可以使用 =Item 从数组中获取当前的循环对象。

在后面的截图中,再也没有出现这个数组参数,这个数组参数是谁?值是多少?

本帖子中包含更多资源

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

x
回复 使用道具 举报
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-24 22:15:20
4#
明天加到100,光顾着发贴了没想到悬赏这事儿
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部