我创建了一个函数,该函数利用 sqlparse 模块从任何给定的 sql 语句中提取所有命中的表:
create or replace function my_function(x text) returns text
as $$
import sqlparse
from collections import namedtuple
from sqlparse.sql import IdentifierList, Identifier, Function
from sqlparse.tokens import Keyword, DML, Puncutation
*the rest of my parser program*
$$ language plpythonu;
当我以这种方式执行函数时:
select my_function('select foo from bar');
它返回:bar
当我以这种方式执行函数时:
select my_column, my_function(my_column) from schema.my_table;
它失败了:
错误:XX000:ImportError:没有模块名称 sqlparse (plpython.c:5038)
任何反馈将不胜感激。