我有一个Oracle存储过程,其参数之一是带有连字符格式xxx-xx-xxxx的社会安全号码(SSN)。删除连字符的最佳方法是什么,以便将SSN转换为xxxxxxxxx格式?
答案 0 :(得分:7)
REPLACE('xxx-xx-xxxx', '-', '')
或者@jitter提到,第三个参数默认为''
,所以:
REPLACE('xxx-xx-xxxx', '-')
答案 1 :(得分:1)
要回答你的第二个问题,如果你已经拥有xxx-xx-xxxx版本,请不要覆盖它,你将同时拥有它们。
如果您期望xxxxxxxxx并且您想要xxx-xx-xxxx,请使用以下方法将其拼凑在一起:
SUBSTR('xxxxxxxxx', 0, 3) || '-' || SUBSTR('xxxxxxxxx', 3, 2) || '-' || SUBSTR('xxxxxxxxx', 5, 4)
答案 2 :(得分:0)
mystring:= v_mySSN; select substr(mystring,0,3)||' - '|| substr(mystring,3,2)||' - '|| substr(mystring,5,4) 进入变异 来自some_table;
这可以在一个过程中使用,以正确选择变量中的值。