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 程序将代码分成两部分的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 过程块

PL/SQL编程_存储程序

PL/SQL学习笔记之基本块格式与语法

PL/SQL基础的执行部分

Oracle11G_PL/SQL

PL/SQL 编程