通过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服务器本身上运行时的SQL输出的屏幕截图(如果有任何输出):

SQL Output

点赞
用户6139563
用户6139563
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)

希望能帮助其他人!

2018-11-20 14:37:14