3.0 KiB
Getting Started
These exercises lean on Test-Driven Development (TDD), but they're not an exact match.
Setup
You'll need access to a mounted Oracle DB. If you don't have one already installed, here are a few options:
- download VirtualBox from Oracle and run one of the freely available images; at the time of writing, the easiest to get started with at the time of writing might be Database App Development VM. The image is quite large...
- download and install the a version of the Oracle DB itself. Developer licenses are free.
- get a free workspace at https://apex.oracle.com
Note: if you're using the online version of APEX, compilation errors will
not be indicated very clearly when working in SQL Commands - you will simply
get "Error at line XX: PL/SQL: Statement ignored"... More insight can be
found using the Object Browser and navigating to the object you created
(select either Packages or Procedures in the dropdown menu showing Tables,
depending on what you created for the exercise). Also, when you run statements,
"run" each individual create
statement individually by selecting its text.
APEX does not seem to like doing too much work at once...
To work on individual problems, a nice and free way is to use SQL Developer. If you don't want to use yet another IDE, you can simply copy and paste your code into a terminal / command prompt connected to the database. The files are prepared in a way that will simply overwrite the previously compiled version.
#Exercise
Step 1
Compile the test suite. You can easily do that by copy / pasting (let's call that installing for simplicity) into your terminal connected to a mounted Oracle database.
This will fail, complaining that there is no package called HAMMING#
.
To fix the error create the package by installing the prepared solution stub.
Note that you will have to re-install the package body of UT_HAMMING#
.
A few words about naming: the #
at the end of the name signifies that this
is a package. UT
means unit test. PL/SQL has a maximum identifier length
of 30 characters, which is why you will find that many words are abbreviated.
If you've worked with PL/SQL before, you might wonder why the template is a package and not simply a standalone function. That would of course also be a possibility, but in practice standalone procedures or functions are rarely used.
Step 2
Try to run the test. You will notice that you are missing the function's implementation. Create it (see the test package for examples).
Note that functions have to return a value, so for now just return null;
.
Step 3
Run the test again. It should now execute, but the test will fail. That's where you get to actually implement the function!
Wash, Rinse, Repeat
Only the first test is enabled at first, the others are commented out. To enable
them, simply delete the --
in front of the procedure call and they'll run
when you next install the test package!
Submit
When everything is passing, you can submit your code with the following command:
$ exercism submit hamming#.plsql