Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在Oracle 11G中正确使用SUBSTR、INSTR和or REPLACE_String_Oracle_Replace_Oracle11g_Substr - Fatal编程技术网

String 如何在Oracle 11G中正确使用SUBSTR、INSTR和or REPLACE

String 如何在Oracle 11G中正确使用SUBSTR、INSTR和or REPLACE,string,oracle,replace,oracle11g,substr,String,Oracle,Replace,Oracle11g,Substr,我想做的是得到第三个字符串。在本例中: NL 123456789 TUE 在本例中更改为数字: 2927 123456789 353620 被(重新)放在后面。所以在“2927”后面。我想知道怎么做?我目前获取此字符串的代码是: CREATE OR REPLACE FUNCTION generateISIN( countryCode Country.Code%TYPE, universityCode University.Code%TYPE, studentNumber VARC

我想做的是得到第三个字符串。在本例中:

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语句

select generateISIN('NL','TUE', '123456789') from dual;
这是我的第二个select语句,它将字符串转换为数字(这里没有放入代码循环)

如果不是太多的要求。请给我举一个例子,说明我的问题

我希望我的问题不要太含糊

如果您想使用,请提前感谢

,以下步骤可以:

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);
虽然我宁愿使用:


检查。

请给我们一些所需输入/输出的示例。NL 123456789 TUE必须更改为TUE NL 123456789完美配对。正则表达式为我做到了这一点。谢谢你的帮助。我把你的awnser标记为正确的
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);
SELECT regexp_replace('NL 123456789 TUE','(.+) (.+) (.+)','\3 \1 \2')
  FROM dual;