The code that you pasted above will create or alter the stored procedure and needs to be run in Enterprise Manager so that the procedure is ready to be called from DS. When you call the procedure from DS you would the use the format.
It's funny because it only happens to me when I connect to Oracle and when I connect to MS SQL it works fine. Unless MS SQL is just reading the string without the quotes.
I've created a simple job to query an Oracle DB and load the result to a sequential file. I've included a parameter for a where clause that I want to add directly to the sql statement. When I am in the Oracle stage I can query the data by changing the where clause to something like = '374425' which ...