I've just compiled your package, in PL/SQL Developer
it works fine.
The problem seems to be with the datatypes in your C#
code.
From what I see in description, you don't bind any parameters. You should bind parameters somewhere in your code, like
OracleParameter bid = new OracleParameter("bookmarkID", OracleDbType.Number);
bid.Direction = ParameterDirection.Output;
command.Parameters.Add(bid);
If there are lots of abstractions you need to deal with, you may redefine you procedure as a function:
FUNCTION procGet_Bookmark_Id RETURN INTEGER
IS
res INTEGER;
BEGIN
SELECT seq_bookmarks.nextval
INTO res
FROM dual;
RETURN res;
END procGet_Bookmark_Id;
and call it in a SELECT
query:
SELECT bookmarks.procGet_Bookmark_id FROM dual;
, which you seem to be able to do.