-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathut_str.sql
More file actions
134 lines (118 loc) · 2.61 KB
/
Copy pathut_str.sql
File metadata and controls
134 lines (118 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* Formatted on 2001/11/19 15:11 (Formatter Plus v4.5.2) */
CREATE OR REPLACE PACKAGE str
IS
FUNCTION betwn (
string_in IN VARCHAR2,
start_in IN PLS_INTEGER,
end_in IN PLS_INTEGER
)
RETURN VARCHAR2;
FUNCTION betwn2 (
string_in IN VARCHAR2,
start_in IN PLS_INTEGER,
end_in IN PLS_INTEGER
)
RETURN VARCHAR2;
PROCEDURE ut_setup;
PROCEDURE ut_teardown;
-- For each program to test...
PROCEDURE ut_betwn;
PROCEDURE wtplsql_run;
END str;
/
/* Formatted on 2001/11/19 15:15 (Formatter Plus v4.5.2) */
CREATE OR REPLACE PACKAGE BODY str
IS
FUNCTION betwn (
string_in IN VARCHAR2,
start_in IN PLS_INTEGER,
end_in IN PLS_INTEGER
)
RETURN VARCHAR2
IS
l_start PLS_INTEGER := start_in;
BEGIN
IF l_start = 0
THEN
l_start := 1;
END IF;
RETURN (SUBSTR (
string_in,
l_start,
end_in
- l_start
+ 1
)
);
END;
FUNCTION betwn2 (
string_in IN VARCHAR2,
start_in IN PLS_INTEGER,
end_in IN PLS_INTEGER
)
RETURN VARCHAR2
IS
BEGIN
-- Handle negative values
IF end_in < 0
THEN
RETURN betwn (string_in, start_in, end_in);
ELSE
RETURN (SUBSTR (
string_in,
LENGTH (string_in)
+ end_in
+ 1,
start_in
- end_in
+ 1
)
);
END IF;
END;
--%WTPLSQL_begin_ignore_lines%--
PROCEDURE ut_setup
IS
BEGIN
NULL;
END;
PROCEDURE ut_teardown
IS
BEGIN
NULL;
END;
-- For each program to test...
PROCEDURE ut_betwn
IS
BEGIN
utassert.eq (
'Typical Valid Usage',
str.betwn ('this is a string', 3, 7),
'is is'
);
utassert.eq (
'Test Negative Start',
str.betwn ('this is a string', -3, 7),
'ing'
);
utassert.isnull (
'Start bigger than end',
str.betwn ('this is a string', 3, 1)
);
END;
--% WTPLSQL SET DBOUT "STR:PACKAGE BODY" %--
PROCEDURE wtplsql_run IS
BEGIN
ut_setup;
ut_betwn;
ut_teardown;
END wtplsql_run;
END str;
/
set serveroutput on size unlimited format word_wrapped
begin
wtplsql.test_run('STR');
wt_text_report.dbms_out(in_runner_name => 'STR'
,in_detail_level => 30);
end;
/