Instrução SET SCHEMA Instrução SET SCHEMA Esquemasalteração da sessão padrão

A instrução SET SCHEMA define o esquema padrão para a sessão da conexão como sendo o esquema designado. O esquema padrão é utilizado como esquema de destino por todas as instruções emitidas pela conexão que não especificam explicitamente o nome do esquema.

Para a instrução SET SCHEMA ser bem-sucedida, o esquema de destino deve existir. Se o esquema não existir, retornará um erro. Consulte a .

A instrução SET SCHEMA não é transacional: Se a instrução SET SCHEMA for parte de uma transação desfeita, a mudança de esquema permanecerá aplicada.

Sintaxe SET [CURRENT] SCHEMA [=] { nome-do-esquema | USER | ? | '<constante-cadeia-de-caracteres>' } | SET CURRENT SQLID [=] { nome-do-esquema | USER | ? | '<constante-cadeia-de-caracteres>' }

O nome-do-esquema é um identificador com comprimento máximo igual a 128. Não diferencia letras maiúsculas de minúsculas, a menos que esteja entre aspas (Por exemplo, SYS é equivalente a sYs, SYs, sys, etc.).

USER é o usuário corrente. Se não houver usuário corrente definido, o esquema corrente padrão será o esquema APP (Se for especificado um nome de usuário na conexão, o nome de usuário será o esquema padrão para a conexão, caso exista um esquema com este nome).

? é a especificação de um parâmetro dinâmico que pode ser utilizado em instruções preparadas. A instrução SET SCHEMA pode ser preparada uma vez e executada com valores de esquema diferentes. Os valores do esquema são tratados como constantes cadeia de caracteres, portanto diferenciando letras maiúsculas e minúsculas. Por exemplo, para designar o esquema APP deve ser utilizada a cadeia de caracteres "APP", em vez de "app".

-- os comandos a seguir são todos equivalentes, -- e funcionam assumindo que exista um esquema chamado HOTEL SET SCHEMA HOTEL SET SCHEMA hotel SET CURRENT SCHEMA hotel SET CURRENT SQLID hotel SET SCHEMA = hotel SET CURRENT SCHEMA = hotel SET CURRENT SQLID = hotel SET SCHEMA "HOTEL" -- identificador entre aspas SET SCHEMA 'HOTEL' -- cadeia de caracteres entre apóstrofos -- Este exemplo produz um erro, porque -- hotel em minúsculas não será encontrado SET SCHEMA = 'hotel' -- Este exemplo produz um erro, porque SQLID -- não é permitido sem CURRENT SET SQLID hotel -- Este exemplo define o esquema como o ID do usuário corrente SET CURRENT SCHEMA USER // Abaixo está um exemplo da utilização de SET SCHEMA em um programa Java PreparedStatement ps = conn.PrepareStatement("set schema ?"); ps.setString(1,"HOTEL"); ps.executeUpdate(); ... fazer alguma coisa ps.setString(1,"APP"); ps.executeUpdate(); ps.setString(1,"app"); //erro - a cadeia de caracteres diferencia // letras maiúsculas e minúsculas; app não será encontrado ps.setNull(1, Types.VARCHAR); //erro - não é permitido nulo