我有一个SQL数据库,我在Python中使用sqlite3查询,我创建了一个名为FOOBAR的自定义数据类型。具有此数据类型的列存储字符串,该字符串是文件路径。查询时,转换器打开文件并返回一些数据,这非常有效。
我想知道是否有任何方法可以将文件路径字符串从列中拉出来,即有选择地不时将转换器应用于此自定义数据类型。
答案 0 :(得分:3)
如果您在转换中使用PARSE_DECLTYPES
method挂钩,请使用CAST
更改'列的类型:
public class RestyDispatcher extends DefaultFilterawareDispatcher {
@Inject
public RestyDispatcher(ForbiddenDispatcherFilter filter) {
addFilter(filter);
addFilter(new BasicAuthHeaderDispatcherFilter());
}
@Override
public Request send(Method method, RequestBuilder builder) throws RequestException {
return super.send(method, builder);
}
}
这会导致SQLite报告文件名,使其具有不同的类型(本例中为文本),绕过与列关联的类型转换。
演示,改编自Point()
example from the documentation:
select CAST(filename as TEXT) from table where <filter>
如果您使用的是PARSE_COLNAMES
method,请在查询时不要在列名称别名中包含类型。