【发布时间】:2014-12-09 19:02:34
【问题描述】:
我有一个程序用table 2 的一些值更新table1。我需要检查一个特定字段(年龄)是否超过两位数。
table 2
code name age
1 jose 21
2 peter 36
3 jhon 50
4 charlie 021
程序运行时,由于table1的charlie字段的年龄值超过两位数而引发错误。
我需要一个查询来测试更新之前的值;如果年龄字段有 3 位数,则删除第一个并传递 2 位数的值。示例:
code name age
3 charlie 021
到:
code name age
3 charlie 21
然后再做程序。
我用这个查询来知道字段的长度
SELECT age, LENGTH(TRIM(table2.age)) FROM table2;
age LENGTH(TRIM(table2.age))
21 2
36 2
50 2
021 3
【问题讨论】:
-
总是正确的 2 个字符吗?您可以使用
right(age,2)... 100 岁及以上的人呢?我建议将它们存储为整数,这样你就不会遇到这个问题了。 -
你能显示你的SP吗?那很容易纠正。
标签: sql oracle stored-procedures plsql