kdb - 在 KDB 中更改 hdb 中的值
问题描述
我想将 hdb 的一列中的某个值更改为另一个值。我尝试使用 dbmaint 包。但是我遇到了一些类型错误。
这是我的代码
fncol[DB;TBL;`col;{x:ssr[string x;"100";"i"$"0"]}];
我正在尝试将此列中的值 100 更改为 0 为 hdb 中的所有日期。
解决方案
在您的函数中,您似乎正在尝试用整数值 0 替换 100 的字符串值。您会发现这会很困难,因为如果您的起始列表是字符串列表,kdb 不会让您只更改一些值到不同的类型。
q)l:("a";"b";"c")
q)l[0]:1
'type
[0] l[0]:1
^
q)l[0]:"d"
q)l
"dbc"
"i"$"0"
还将字符串转换为整数类型,而将"I"$"0"
“0”内的文本解析为整数值。实际上,这意味着"i"$"0"
将变为 48i,因为“0”在 ASCII 中是 48 而不是 0。
如果在收到类型错误并进入调试模式(在 q 提示符处由多个括号表示)之后,您可以使用函数.z.ex
并.z.ey
查看失败的函数和参数,这可能会使调试更容易
推荐阅读
- php - 使用 PHP 单击链接时,如何将文本分配到页面?
- ruby-on-rails - 如何覆盖我的 classes 属性如何为我的订单模型呈现 JSON
- pdf - 如何将不寻常的 Unicode 字符 (UTF-8) 转换为 PDF?
- sql-server - SQL Server 2012:如何从名为“NULL”且 ID 为 0 的索引中恢复磁盘空间?
- javascript - Node.Js / Express 将数据发送回前端
- karate - 我可以在空手道中保存/使用原始响应体吗?
- java - Netbeans 在初始化时崩溃,Eclipse 也是如此
- python - Beautiful Soup:替换返回的图像源的一部分
- azure - 如何在 Azure 上使用 Neo4j 加载 CSV?
- php - PHP 中的 HTML 表单验证。