求可生成递增数字/星号等图案的Oracle PLSQL程序
PLSQL实现多类型递增图案输出方案
需求说明
编写PLSQL程序实现递增数字、星号、井号等类型的图案输出,递增数字图案预期样例如下:
1 12 123 1234 12345
注意事项
- 执行PLSQL打印逻辑前需要先执行
SET SERVEROUTPUT ON;开启服务端输出开关,否则无法在控制台看到打印结果
通用实现代码
以下封装的存储过程支持自定义图案类型、输出行数,可直接复用:
CREATE OR REPLACE PROCEDURE print_pattern( p_pattern_type VARCHAR2, -- 图案类型可选值:'NUM'数字/'STAR'星号/'HASH'井号 p_max_rows NUMBER -- 最大输出行数 ) AS v_line_content VARCHAR2(100); BEGIN -- 外层循环控制输出行数 FOR i IN 1..p_max_rows LOOP v_line_content := ''; -- 内层循环拼接当前行内容 FOR j IN 1..i LOOP CASE p_pattern_type WHEN 'NUM' THEN v_line_content := v_line_content || TO_CHAR(j); WHEN 'STAR' THEN v_line_content := v_line_content || '*'; WHEN 'HASH' THEN v_line_content := v_line_content || '#'; ELSE RAISE_APPLICATION_ERROR(-20001, '不支持的图案类型,仅支持NUM/STAR/HASH三类'); END CASE; END LOOP; -- 打印当前行 DBMS_OUTPUT.PUT_LINE(v_line_content); END LOOP; END; /
调用示例
- 输出5行递增数字图案(匹配需求预期效果)
BEGIN print_pattern('NUM', 5); END; /
- 输出4行星号递增图案
BEGIN print_pattern('STAR', 4); END; /
输出效果:
* ** *** ****
- 输出6行井号递增图案
BEGIN print_pattern('HASH', 6); END; /
输出效果:
# ## ### #### ##### ######
内容的提问来源于stack exchange,提问作者user17150232
相关产品推荐
相关产品推荐

