mysql - 通过 LUA 脚本输出 SQL 表
问题描述
我正在寻找有关 LUA 脚本的一些帮助,该脚本应该以可读格式输出表的结果。
此脚本仅将结果打印为表参考:
database.open("provider=nis;database=nis;driver=none")
query = database.query("SELECT distinct cmcs.name, ms.schedule_name, mw.start_time, mw.end_time from MAINTENANCE_WINDOW mw INNER JOIN CM_DEVICE cmd on mw.dev_id = cmd.dev_id INNER JOIN CM_COMPUTER_SYSTEM cmcs on cmcs.cs_id = cmd.cs_id INNER JOIN MAINTENANCE_SCHEDULE ms on mw.schedule_id = ms.schedule_id where mw.end_time > GETDATE();")
print (query)
以上输出:
table:0x7fe8f40e6f00
我有以下脚本,但它没有输出我期望看到的内容:
database.open("provider=nis;database=nis;driver=none")
query = database.query("SELECT distinct cmcs.name, ms.schedule_name, mw.start_time, mw.end_time from MAINTENANCE_WINDOW mw INNER JOIN CM_DEVICE cmd on mw.dev_id = cmd.dev_id INNER JOIN CM_COMPUTER_SYSTEM cmcs on cmcs.cs_id = cmd.cs_id INNER JOIN MAINTENANCE_SCHEDULE ms on mw.schedule_id = ms.schedule_id where mw.end_time > GETDATE();")
if query == nil then
print ("Query did not complete, or had no results")
else
for idx,row in pairs (query) do
printf("Hostname: %s \t IP: %s",row['name'],row['schedule_name'])
end
end
这是在 SQL Server 本身上运行时的 SQL 输出屏幕截图(如果有任何输出):
解决方案
知道了:
database.open("provider=nis;database=nis;driver=none")
function tdump(t)
local function dmp(t, l, k)
if type(t) == "table" then
print(string.format("%s%s:", string.rep(" ", l*2), tostring(k)))
for k, v in pairs(t) do
dmp(v, l+1, k)
end
else
print(string.format("%s%s:%s", string.rep(" ", l*2), tostring(k), tostring(t)))
end
end
dmp(t, 1, "Maintenance Monitor")
end
--To OUTFILE
query = database.query("SELECT distinct cmcs.name, ms.schedule_name, mw.start_time, mw.end_time from MAINTENANCE_WINDOW mw INNER JOIN CM_DEVICE cmd on mw.dev_id = cmd.dev_id INNER JOIN CM_COMPUTER_SYSTEM cmcs on cmcs.cs_id = cmd.cs_id INNER JOIN MAINTENANCE_SCHEDULE ms on mw.schedule_id = ms.schedule_id where mw.end_time > GETDATE() INTO OUTFILE '/tmp/Maintenance.txt';")
tdump(query)
希望它可以帮助别人!
推荐阅读
- android - 安装 react-native-firebase 后 React Native Android 应用程序崩溃
- html - css - 意外换行
- 带有元素 display:flex 在 Internet Explorer(和 Edge)中
- excel - 您可以在 CSV 中使用哪种日期格式,Excel 可以明确识别?
- swift - EXC_BAD_ACCESS 中的 Swift 泛型方法
- javascript - 合并两个对象数组,跳过具有相同 ID 属性的对象
- python - 表示进一步查询的路径
- keras - keras 如何解决这些问题的相关任务?
- scikit-learn - FastText:无法获得 cross_validation
- visual-studio-code - 如何在 VS Code 中的同一文件的其他拆分选项卡中打开“转到定义”?
- google-cloud-platform - 如何在不关闭服务的情况下对存储桶进行快照?