Buenas…
Os sinais " : " e “@” são utilizados em aplicativos que interagem diretamente com o banco para executar comandos SQL (T.O.A.D, SQLPlus, Query Builder, SQL Programmer, etc).
Normalmente estes sinais assinalam que o que vem após, é uma variável BIND, para qual deve ser informado um valor que vai ser substituido no momento de fazer o parse do SQL.
ex.: select * from clienetes where cidade = :cid;
no momento de executar o parser muda o :cid por um valor informado ou contido em uma variavel chamada cid na memória.
Para o que você quer fazer em JAVA o negócio é PreparedStatement para rodar SQLs, ou CallabeStatement quando utilizar Stored Procedures.
ex.:
CallableStatement cs1 = null;
cs1 = conn.prepareCall( “{call P_GERA_DADOS (?,?)}” )
cs1.setInt(1,sId);
cs1.setString(2,sData)
cs1.execute();
cs1.close();
[]s