您正在处理两个术语:
- 包含表和数据的数据库 - 表属于 SYS 或 SYSTEM 等用户 - 您根本不应该使用它们,除非解锁现有用户(HR 或 SCOTT;无论是哪个)以便将其用于练习
- Application Express,它是一种用于访问数据库和创建应用程序的工具,这些应用程序将管理存储在表中的数据。以管理员身份登录后,您可以创建工作区(映射到数据库用户/模式)和开发人员(将创建应用程序)。这个“管理员”用户与数据库所有者(sys/system)非常不同,因此您无法使用 sys 作为用户名及其密码登录 Apex
当您安装 11g XE 数据库(我认为它具有内置 Apex 4.x 版 - 它不是 Apex 11g,它不存在)时,在操作系统命令提示符处运行 SQL*Plus 并连接作为 SYS:
C:\>sqlplus sys@xe as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Sub Lis 6 20:26:19 2018
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
列出数据库中的用户:
SQL> select username, account_status from dba_users order by username;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
ANONYMOUS OPEN
APEX_PUBLIC_USER LOCKED
APEX_040000 LOCKED
APPQOSSYS EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
DBSNMP EXPIRED & LOCKED
DIP EXPIRED & LOCKED
FLOWS_FILES LOCKED
HR LOCKED
IMPORTER OPEN
MDSYS EXPIRED & LOCKED
MIKE OPEN
ORACLE_OCM EXPIRED & LOCKED
OUTLN EXPIRED & LOCKED
SCOTT OPEN
SYS OPEN
SYSTEM OPEN
XDB EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
19 rows selected.
SQL>
看到 HR(人力资源)用户了吗?它被锁定。我们将解锁它并更改其密码(更改为“hr”),以便您可以在 Apex 中使用它,因为它已经包含几个充满数据的表。
SQL> alter user hr account unlock;
User altered.
SQL> alter user hr identified by hr;
User altered.
SQL>
以 HR 身份连接,只是为了查看其中包含的内容:
SQL> connect hr/hr@xe
Connected.
SQL> select * From tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTRIES TABLE
DEPARTMENTS TABLE
DEPT TABLE
EMPLOYEES TABLE
EMP_DETAILS_VIEW VIEW
INSTRUCTOR TABLE
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
PRODUCT TABLE
REGIONS TABLE
RIGHTS TABLE
TEACHES TABLE
USERS TABLE
14 rows selected.
SQL>
如果您想创建自己的表,请在 HR 模式中进行。正如我所说,不要管 SYS 和 SYSTEM;它们很特别,您不会将它们用于日常目的。如果你做了一些不寻常的,你可能会破坏数据库。
好的;现在运行 Apex,以管理员身份连接,导航到“管理工作区”,然后:
- 创建工作区 - 按照向导操作。当被问及“重用现有架构”时,回答“是”并从值列表中选择 HR
- 管理开发者和用户 - 创建用户。按照向导。作为工作空间,选择之前创建的工作空间,设置密码
完成后,注销管理员并以新创建的用户身份登录 - 提供工作区名称、用户名和密码 - 这应该可以让您进入。一旦您进入 Apex - 作为开发人员 - 您可以创建您的第一个页面(交互式报告可能是一个不错的选择)。
祝你好运!
[编辑:11gXE 上的内置 Apex]
- 点击开始-所有程序-Oracle数据库11g快捷版-开始
- 打开一个页面,提供几个红色按钮;最后一个是“Application Express”;点击它
- 登录要求具有 DBA 权限的数据库用户;输入用户名 = SYS(或 SYSTEM)及其密码
- 您现在被重定向到“创建 Apex 工作区”页面。项目标签带有下划线;这意味着它们包含帮助(请随意点击)。第一项是“数据库用户”单选按钮,它提供“新建”和“使用现有” - 您可以选择“使用现有”
- 对于“数据库用户名”,从选择列表中选择“HR”。 HR现在解锁了,对吧?如果它已过期,请务必更改它以设置密码 (
alter user hr identified by hr)
- Application Express 用户名(和密码)代表与 Apex 相关的用户名(即不是数据库用户) - 您将使用它来登录 Apex
如果您想查看哪些工作区已经存在,请以 SYS 身份连接到数据库(在操作系统命令提示符下使用 SQLPlus):
C:\>sqlplus sys@xe as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Ned Lis 7 12:40:34 2018
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> select * from all_users where username like 'APEX%';
USERNAME USER_ID CREATED
------------------------------ ---------- --------
APEX_040000 47 29.05.14
APEX_PUBLIC_USER 45 29.05.14
SQL> -- describe table that contains info about workspaces
SQL> desc apex_040000.apex_workspaces
Name Null? Type
----------------------------------------- -------- ----------------------------
WORKSPACE NOT NULL VARCHAR2(255)
SOURCE_IDENTIFIER VARCHAR2(8)
SCHEMAS NUMBER
LAST_PURGED_SESSION DATE
ALLOW_APP_BUILDING_YN VARCHAR2(1)
ALLOW_SQL_WORKSHOP_YN VARCHAR2(1)
ALLOW_WEBSHEET_DEV_YN VARCHAR2(1)
ALLOW_TEAM_DEVELOPMENT_YN VARCHAR2(1)
ALLOW_TO_BE_PURGED_YN VARCHAR2(1)
SESSIONS NUMBER
APPLICATIONS NUMBER
APPLICATION_PAGES NUMBER
APEX_USERS NUMBER
APEX_DEVELOPERS NUMBER
APEX_WORKSPACE_ADMINISTRATORS NUMBER
FILES NUMBER
SQL_SCRIPTS NUMBER
TRANSLATION_MESSAGES NUMBER
FILE_STORAGE NUMBER
LAST_LOGGED_PAGE_VIEW DATE
PAGE_VIEWS NUMBER
WORKSPACE_ID NOT NULL NUMBER
SQL> col workspace format a10
SQL> select workspace, source_identifier, apex_developers
2 from apex_040000.apex_workspaces;
WORKSPACE SOURCE_I APEX_DEVELOPERS
---------- -------- ---------------
HR HR 1
INTERNAL 0
SQL>
如果 HR 工作区已经包含,则表示您已经创建了它。
在网络浏览器中,以管理员身份连接(使用地址http://127.0.0.1:8080/apex/apex_admin)。 (工作区名称是“内部”;您不必输入它)。用户名 = 管理员,密码 = ...嗯,不确定。试试 SYS 密码。如果无法连接,您可以更改该密码。在磁盘上找到名为 APXCHPWD.SQL(“Apex 更改密码”)的文件;例如,它将位于 C:\oraclexe\app\oracle\product\11.2.0\server\apex\apxchpwd.sql 目录中。在 SQLPlus 中,以 SYS 身份连接,执行该文件:
SQL> show user
USER is "SYS"
SQL> @C:\oraclexe\app\oracle\product\11.2.0\server\apex\apxchpwd.sql
Enter a value below for the password for the Application Express ADMIN user.
Enter a password for the ADMIN user []
Session altered.
...changing password for ADMIN
PL/SQL procedure successfully completed.
Commit complete.
SQL>
管理员现在将拥有您刚刚输入的密码,所以 - 返回 Apex 管理员,连接;您必须更改该密码 - 这样做,然后重新连接。
您现在将看到“管理工作区”按钮。在那里,有许多链接可以做stuff。如果需要,您可以删除 HR 工作区(按照“删除工作区”链接)并重新创建它。
下一步是创建开发者 - 使用“管理开发者和用户”链接。完成此操作后,您应该能够以开发人员身份登录 Apex,使用“HR”作为工作区名称、开发人员用户名和密码作为凭据。
为了能够同时以 admin 身份调整 Apex 并以开发人员身份连接,请使用 不同的浏览器 打开一个新连接(例如,Chrome 用于一件事, Internet Explorer for another) - 如果您使用相同的浏览器(但不同的选项卡,甚至完全是新的浏览器会话),它将无法工作 - 新连接将终止之前的连接。
我希望以上内容可以帮助您入门。
显然,内置的 Apex 版本是 4.0.2(相当旧的,至少 5-6 年),但一开始会做。升级到更新版本并不困难 - 下载并运行 SQL 文件,它会为您完成所有工作。只需按照安装指南操作即可。
我还建议您阅读并遵循 4.0 Apex 用户指南,这样我就不必在 Stack Overflow 上创建教程了 :)