PL/SQL 程序将代码分成两部分
Posted
技术标签:
【中文标题】PL/SQL 程序将代码分成两部分【英文标题】:PL/SQL program to separate the code into its two parts 【发布时间】:2021-05-08 19:14:35 【问题描述】:如何编写PL/SQL程序将代码分成两部分,如下例所示:如果输入是ABC031,输出应该是:
产品名称是:ABC 序列号是:031
提示:如果需要,请使用以下功能: instr( string1, string2 [, start_position [, nth_appearance ] ] ) substr(字符串,起始位置,[长度]) 长度(字符串) DBMS_OUTPUT.PUT_LINE( )
【问题讨论】:
mysql不支持pl/sql。 PL/SQL Developer 似乎与您的问题无关,所以我建议删除标签。 【参考方案1】:这里有两个例子,看看是否有帮助。
SQL> set serveroutput on
SQL>
SQL> create or replace procedure p_test (par_input in varchar2)
2 is
3 l_product_name varchar2(10);
4 l_serial_number varchar2(10);
5 begin
6 -- first example
7 l_product_name := substr(par_input, 1, 3);
8 l_serial_number := substr(par_input, 4);
9
10 dbms_output.put_line('First example : ' || l_product_name ||', '|| l_serial_number);
11
12 -- second example, possibly better as it splits letters from digits
13 l_product_name := regexp_substr(par_input, '^[[:alpha:]]+');
14 l_serial_number := regexp_substr(par_input, '[[:digit:]]+$');
15
16 dbms_output.put_line('Second example: ' || l_product_name ||', '|| l_serial_number);
17 end;
18 /
Procedure created.
SQL> begin
2 p_test('ABC031');
3 end;
4 /
First example : ABC, 031
Second example: ABC, 031
PL/SQL procedure successfully completed.
SQL>
【讨论】:
以上是关于PL/SQL 程序将代码分成两部分的主要内容,如果未能解决你的问题,请参考以下文章