41 lines
825 B
SQL
41 lines
825 B
SQL
SET SERVEROUTPUT ON @
|
|
|
|
BEGIN
|
|
DECLARE NMBR VARCHAR(100) DEFAULT '1';
|
|
DECLARE J SMALLINT DEFAULT 1;
|
|
|
|
CALL DBMS_OUTPUT.PUT_LINE(NMBR);
|
|
WHILE (J < 10) DO
|
|
BEGIN
|
|
DECLARE I SMALLINT;
|
|
DECLARE SIZE SMALLINT;
|
|
DECLARE ACTUAL CHAR(1);
|
|
DECLARE REPEAT CHAR(1);
|
|
DECLARE RESULT VARCHAR(100);
|
|
DECLARE TIMES SMALLINT;
|
|
|
|
SET REPEAT = SUBSTR(NMBR, 1, 1);
|
|
SET NMBR = SUBSTR(NMBR, 2) || ' ';
|
|
SET TIMES = 1;
|
|
SET I = 1;
|
|
SET SIZE = LENGTH(NMBR);
|
|
|
|
WHILE (I <= SIZE) DO
|
|
SET ACTUAL = SUBSTR(NMBR, I, 1);
|
|
IF (ACTUAL <> REPEAT) THEN
|
|
SET RESULT = COALESCE(RESULT, '') || TIMES || '' || REPEAT;
|
|
SET TIMES = 1;
|
|
SET REPEAT = ACTUAL;
|
|
ELSE
|
|
SET TIMES = TIMES + 1;
|
|
END IF;
|
|
SET I = I + 1;
|
|
END WHILE;
|
|
|
|
CALL DBMS_OUTPUT.PUT_LINE(RESULT);
|
|
SET NMBR = RESULT;
|
|
END ;
|
|
SET J = J + 1;
|
|
END WHILE;
|
|
END @
|