【发布时间】:2021-03-20 03:35:21
【问题描述】:
一个表在其中存储查询,我需要从这些查询中提取表名。
表:主
| ID | querytext |
|---|---|
| 1 | select a.record_id, a.name, b.person FROM database.atable a join database.btable b on b.id= a.id; |
| 2 | select c.record_id, c.name, d.person FROM database.ctable c join database.dtable d on c.id= d.id; |
预期结果:
database.atable
database.ctable
SELECT SUBSTR(querytext, position('database.' in querytext), 30) FROM main;
这几乎可以工作,但我不知道表名可以多长或多短。如果超过 30,则会截断结果。如果更短,它可以包括查询的其他部分。我正在阅读 strtok 并考虑使用它来到达名称后的空格以停止,但无法使其正常工作。
【问题讨论】: