我想编写一个 Oracle 存储过程来更新数据库上的表,其中有一种方法可以为该过程提供(或不提供)一个 columname 参数,这意味着“不要更新此列”。这与
更新表名集 列名 = nvl(p_columnname,列名), ... 其中键 = p_key
如果这样做,则不能将该列清空。我也希望能够取消该列。如果 Oracle 支持无类型关键字 UNKNOWN,我可以说 p_columname varchar2 := UNKNOWN,并测试自定义函数中参数的遗漏。但是如果没有这个,定义魔法值会变得很麻烦,这意味着“不要更新该列”,每个数据类型一个,这样我就不会在比较不兼容的数据类型时出错。
这似乎是一个常见的问题(一个存储过程来处理对表的所有更新,而不需要对未更改的列进行 read-before-write 选择)。肯定有人想出了一个最佳实践来处理它。无论如何希望如此。提前致谢。