我正在写一些处理一些批量上传数据的存储过程。可以标记每个输入行以查找各种应用程序错误。我总共有近100种不同类型的错误,以及十几种不同的文件加载程序。
在C / C ++中,错误代码的习惯用法是项目范围的包含(类)文件中的一堆#define
或const
,然后在应用程序代码中使用符号名称。编译器检查任意拼写。 Java / C#也提供了类似的构造。如何在plpgsql
中获得类似的效果?我已经玩过在postgresql.conf中设置这些,但这是一个合理的方法吗?它显然不会在编译时工作。我不想将conf文件的写权限授予应用程序开发人员。此外,它将需要为每次应用程序更改重新加载conf,可能是系统稳定性问题。我相信还有许多其他缺点。
同样,我还需要简单的“用户定义”类型,其中我想修复某些应用程序数据类型的表示,例如“part_number”为varchar(20),“currency_code”是char(3)等等。同样,在C / C ++中,可以根据具体情况使用typedef
或struct
。所以我尝试在PostgreSQL中创建一个TYPE
,以便在表,视图和函数头之间保持一致的使用。但是对于UDT,我遇到了一系列新问题:指定主键,以及CSV输入规范,其中现在必须在括号中给出值。在PostgreSQL中有没有不同的方法来处理这些目标?
我是PostgreSQL的新手。我们在Linux上使用9.2。我很想使用预处理器,但它与我见过的任何设计工具都不兼容。