Instru????o SET SCHEMA

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 Instru????o CREATE SCHEMA.

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
Refer??ncias relacionadas
Instru????o SET CURRENT ISOLATION