我想做的就是获得第三个字符串。在此示例中:
NL 123456789 TUE
在此示例中已更改为一个数字:
2927 123456789 353620
被放在后面。因此在" 2927"后面。我想知道该怎么做?我目前获得此字符串的代码是:
CREATE OR REPLACE FUNCTION generateISIN(
countryCode Country.Code%TYPE,
universityCode University.Code%TYPE,
studentNumber VARCHAR2)
RETURN VARCHAR2
AS
newStudentNumber VARCHAR2(50) := '';
BEGIN
select country.code || ' ' || studentNumber || ' ' || university.code
into newStudentNumber
from country, university
where country.code = countryCode
and university.code = universityCode;
dbms_output.put_line(newStudentNumber);
RETURN newStudentNumber;
END generateISIN;
/
这是我获得第一个示例
的选择语句select generateISIN('NL','TUE', '123456789') from dual;
这是我的第二个选择语句,将字符串变成数字(没有将代码循环放入此处)
select CONVERT_STR_TO_NUMERIC(generateISIN('NL','TUE', '123456789')) from dual;
如果不是太多要问。请为我提供一个给定问题的例子
我希望我的问题不会太模糊
预先感谢
如果要使用 INSTR
和 SUBSTR
,则应以下操作:
SELECT SUBSTR (x, INSTR(x, ' ', 1, 2) +1) || ' ' ||
SUBSTR (x, 1, INSTR(x, ' ') -1) || ' ' ||
SUBSTR (x, INSTR(x, ' ') +1, INSTR(x, ' ', 1, 2) -INSTR(x, ' '))
FROM (SELECT 'NL 123456789 TUE' x
FROM dual);
尽管我宁愿使用oracle regexp_replace
:
SELECT regexp_replace('NL 123456789 TUE','(.+) (.+) (.+)','3 1 2')
FROM dual;
在此处检查SQL小提琴。