Eu tenho um Cursor que obtém seus dados de um script ao longo destas linhas:
OPEN myCursor FOR
SELECT value1 AS Value1,
myPackage.function1 (value1, :myId) AS Result1,
myPackage.function2 (value1, :myId) AS Result2,
myPackage.function3 (value1, :myId) AS Result3
FROM mySchema.myTable
WHERE tpk = :myPk
USING myId, myId, myID
Como você pode ver, eu uso a variável myId 3 vezes e tenho que passá-la 3 vezes na instrução using para que funcione. Não consegui encontrar em lugar nenhum, mas tem como eu passar a variável myId apenas uma vez?
Não conheço nenhuma maneira integrada de fazer isso, mas você pode usar uma tabela derivada ou uma expressão de tabela comum (CTE ou como o Oracle gosta de chamá-los: subquery_factoring_clause ), se seu objetivo for passar os parâmetros apenas uma vez em o
USING
: