我正在编写一些处理一些批量上传数据的存储过程。每个输入行都可以标记为各种应用程序错误。我总共有近 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。我很想使用预处理器,但它不会与我见过的任何设计工具兼容。