Estou bastante familiarizado com DBMS Relacional em geral, mas não com Oracle. Eu tenho o Oracle 18c XE rodando dentro do Docker (no MacOS). Eu me conecto a ele usando um cliente de terceiros (SQLPro Studio no MacOS). Agora quero começar.
Se fosse o MySQL, eu poderia emitir CREATE DATABASE whatever; USE whatever;
e prosseguir com as tabelas. O mesmo com o Microsoft SQL Server e algo semelhante com o PostgreSQL. Eu também poderia criar um esquema adicional para manter melhor organizado.
Eu entendo que o Oracle XE fornece apenas um único banco de dados e gostaria de criar um esquema adequado. Neste momento estou no mar. Eu entendo que eu precisaria criar um novo usuário associado ao esquema.
Eu também sei que diferentes RDBMS têm ideias diferentes sobre o que é um banco de dados ou um esquema, então não tenho certeza se essa é a definição ou solução correta.
Não estou tendo sucesso criando um novo usuário ou um novo esquema no meu cliente.
Eu tentei:
CREATE USER fred IDENTIFIED BY 'h3art0fg0ld`;
mas recebo a mensagem:
nome de usuário ou função comum inválido
Eu também li que eu deveria usar algo como c##fred
, que funcionou, mas (a) eu realmente não sei o que isso significa e (b) a declaração GRANT connect, resource, create sessions TO c##printsdb;
me dá a mensagem “privilégio ausente ou inválido”, então não estou mais longe à frente.
Estando em um contêiner do Docker, não sei se tenho acesso ao SQL*Plus, que alguns tutoriais online presumem.
Como crio e uso um esquema ou o que for necessário para conter uma coleção de tabelas?
Correto - contanto que você "fale" Oracle-ese.
O Container Database é a única instância "real" do Oracle Database que você tem.
Os "Pluggable Databases" dentro dele são essencialmente "Tablespaces on Steroids", mas com uma segurança muito melhor que agora garante o isolamento de cada um dos outros.
Para a maioria das operações normais, você deve ignorar completamente o Container Database.
Basta usar o/a Pluggable Database dentro dele.
Conecte-se ao Pluggable Database e sua instrução funcionará exatamente como você espera.