考虑这一点 - 有许多数据库,每个数据库都有许多表。我使用'date / datetime'数据类型以及表名和模式名称提取了列。
SELECT
c.column_name AS col,
column_type AS type,
c.table_name AS tn,
c.table_schema AS ts
FROM
information_schema.columns AS c,
(SELECT
table_name, table_schema, table_rows AS tr
FROM
information_schema.TABLES
ORDER BY table_schema) a
WHERE
column_type LIKE 'date%'
AND a.table_name = c.table_name
AND a.table_schema = c.table_schema
;
我得到了这些列=(column,column_type,table_name,table_Schema)。现在我想在结果中循环(或者任何其他方式都可以)并且对于每行我想要这样做
SELECT max(column) FROM table_schema.table_name
例如,第一行是(login_date,date,login,customers),我想做
SELECT max(login_date) FROM customers.login
我想为每一行做这件事。任何帮助将不胜感激。
答案 0 :(得分:1)
您可以尝试这样的事情:
cursor csr
is select max(dates)
from tables
and dates is not null; rec csr%rowtype;
begin
open csr;
for x in cursor_body
loop
fetch csr into rec;
exit when csr%notfound;
x.csr;
end loop;
close csr;
如果你不想创建一个完整的过程,那么你将不得不至少使用一个声明块。选择光标中的值,然后在开始后将光标循环到处理阶段。
希望这有帮助