AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-2453

kevinskio's questions

Martin Hope
kevinskio
Asked: 2015-03-04 19:04:08 +0800 CST

从 Oracle 用户中删除版本

  • 3

我维护一个 Oracle Enterprise 11.2.0.3 数据库,其中一个用户启用了版本。我知道根据文档,这是一个不可逆转的选择。

如果我希望将该用户恢复为非编辑状态,我可以导出他们的对象,删除并重新创建用户,然后导入旧对象吗?

  • 有什么后果吗?
  • Oracle 将导出哪个版本?
  • 我应该先删除所有子版本吗?

这个问题是由团队的评估引起的,即当我们有足够的时间段进行计划停机时,不使用版本并且不会提供任何好处。如果编辑用户从其他用户那里选择非编辑对象,它会阻止任何物化视图被编辑用户创建。这对于一个即将到期的项目和不久的将来的数据仓库是必需的。

oracle oracle-11g-r2
  • 1 个回答
  • 3019 Views
Martin Hope
kevinskio
Asked: 2013-05-24 09:40:31 +0800 CST

oracle会话时区在哪里设置?

  • 3

我有一个记录表

CREATE TABLE EMAIL_LOGGING
(
  ID               NUMBER(9)                    NOT NULL,
  SEND_DATE        TIMESTAMP(6)                 DEFAULT LOCALTIMESTAMP        NOT NULL,
  SEND_TO_USER_ID  NUMBER(9)                    NOT NULL);

和一个用这个片段插入其中的包:

  INSERT INTO EMAIL_LOGGING ("ID",SEND_DATE, SEND_TO_USER_ID)
       VALUES (NULL, LOCALTIMESTAMP,send_to_user_in);

当从一个包中的 DBMS_JOB 调用它时,它会插入格林威治标准时间。当从另一个使用 db_link 到另一个数据库的包的 DBMS_JOB 调用它时,它会正确插入本地时间。

我认为这是由正在使用的客户端时区引起的,但是将其添加到作业中并没有解决它:

execute immediate 'alter session set time_zone=local';

当然,最好的解决方案是移至 DBMS_Scheduler,但在此之前如何确保插入的时间戳是本地时间?

select * from v$version where banner like 'Oracle%';
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
SELECT DBTIMEZONE FROM DUAL;
+00:00
SELECT SESSIONTIMEZONE from dual;
-04:00
oracle oracle-11g-r2
  • 1 个回答
  • 6640 Views
Martin Hope
kevinskio
Asked: 2013-03-15 06:10:13 +0800 CST

使用递归表强制数据完整性

  • 6

我有一个适用于 Web 应用程序的现有 oracle 11g 数据库模式。我正计划对应用程序进行扩展,以便 Web 服务可以对数据库进行数据操作。作为计划的一部分,我已经意识到没有对父/子关系的数据完整性检查,这会使其他应用程序使用该表成为问题。我计划在 Web 服务中进行验证,但最佳做法是在数据库和 Web 服务中进行验证。

--the base lookup table has a table with text values that is not shown.
--Example Red, Green, 
CREATE TABLE PROPERTY
(
  ID                        NUMBER(9)           NOT NULL, --PRIMARY KEY
  TENANT_ID                 NUMBER(9)           NOT NULL
)
-- a property may or may not have a parent property. 
--Example "Weight" of an item is a child of the "Shipping Weight"
CREATE TABLE PROPERTY_DEPENDENCY  --PRIMARY KEY PROPERTY_ID,PROPERTY_TYPE_ID
(
  PROPERTY_ID               NUMBER(9)           NOT NULL,
  PARENT_PROPERTY_ID        NUMBER(9),
  PROPERTY_TYPE_ID          NUMBER(9)           NOT NULL,
  ACTIVE                    NUMBER(1)           NOT NULL
)
--examples "Item Colour", "Item Trim Colour","Shipping Weight", "Weight"
CREATE TABLE PROPERTY_TYPE
(
  ID                        NUMBER(9)           NOT NULL,  --PRIMARY KEY
  VALUE                     VARCHAR2(200 BYTE)  NOT NULL,
  PROPERTY_TYPE             NUMBER(10)          DEFAULT 1   NOT NULL
)

--and the table that you insert and update into
CREATE TABLE CASE_PROPERTY
(
  ID                        NUMBER(9)           NOT NULL, --PRIMARY KEY
  PARENT_ID                 NUMBER(9),          --constraint on PROPERTY
  CASE_ID                   NUMBER(9)           NOT NULL,--foreign key
  PROPERTY_ID               NUMBER(9),          --constraint on PROPERTY
  PROPERTY_TYPE_ID          NUMBER(9)           NOT NULL --constraint on PROPERTY_TYPE
)

这些是我发现的问题:

  • 您可以插入到 CASE_PROPERTY 中并使属性成为自己的父母或祖父母
  • 您可以将 PROPERTY_ID 的错误 PROPERTY_TYPE_ID 插入 CASE_PROPERTY
  • 您可以在 CASE_PROPERTY 中插入一个 PARENT_ID,这对 PROPERTY_TYPE_ID 没有意义

我可以添加一个检查约束,PARENT_ID <> PROPERTY_ID这样你就不能成为自己的父母。

编辑 3: 真正的问题是表格没有正确规范化,这对报告非常有用,但很难进行数据验证。CASE_PROPERTY.PROPERTY_TYPE_ID应该始终与中的值相同,PROPERTY_DEPENDENCY.PROPERTY_TYPE_ID但我不知道如何验证这一点。

除了触发器之外,还有其他方法可以强制执行数据完整性CASE_PROPERTY吗?

编辑:我会整理一个完整的例子。如果我在上添加外键约束,PROPERTY_DEPENDENCY我将验证是否只插入了具有父项的属性,但它们是正确的父项吗?

编辑 2:这是允许插入的完整示例。最后两个插入是允许但不应插入的数据示例。

ALTER TABLE CASE_PROPERTY ADD  CONSTRAINT CASE_PROPERTY_R01  FOREIGN
KEY (PARENT_ID)  REFERENCES CASE_PROPERTY (ID)  ENABLE  VALIDATE

Insert into PROPERTY    (ID, TENANT_ID)  Values    (2, 1); 
Insert into PROPERTY    (ID, TENANT_ID)  Values    (3, 1); 
Insert into PROPERTY    (ID, TENANT_ID)  Values    (4, 1); 

Insert into PROPERTY_TYPE    (ID, 
    VALUE, PROPERTY_TYPE)  Values    (10, 'Colour', 2);    
Insert into PROPERTY_TYPE    (ID, 
    VALUE, PROPERTY_TYPE)  Values    (11, 'Trim Colour', 1);    
Insert into PROPERTY_TYPE    (ID, 
    VALUE, PROPERTY_TYPE)  Values    (12, 'Shipping Weight', 1); 
Insert into PROPERTY_TYPE    (ID, 
    VALUE, PROPERTY_TYPE)  Values    (13, 'Weight', 3); 

Insert into PROPERTY_DEPENDENCY    (PROPERTY_ID, 
    PARENT_PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (4, 3, 11); 
Insert into PROPERTY_DEPENDENCY    (PROPERTY_ID, 
    PARENT_PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (3, NULL, 10);
Insert into PROPERTY_DEPENDENCY    (PROPERTY_ID, 
    PARENT_PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (1, NULL, 12);    
Insert into PROPERTY_DEPENDENCY    (PROPERTY_ID, 
    PARENT_PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (2, 1, 13); 

--example of a property validated data insert

--item 201 with type 13 is the child of item 200 of type 12
Insert into CASE_PROPERTY    (ID, 
    PARENT_ID, CASE_ID, PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (200, NULL, 3000, 1, 12); 
Insert into CASE_PROPERTY    (ID, 
    PARENT_ID, CASE_ID, PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (201, 200, 3000, 2, 13); 

--bad data inserts

-- a property is parent to itself with an incorrect property_type_id 

Insert into CASE_PROPERTY    (ID, 
    PARENT_ID, CASE_ID, PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (202, 202, 4000, 3, 10);  
--should be 202, null,4000,3,10 

--a property is inserted with a parent that is not allowed 

Insert into CASE_PROPERTY    (ID, 
    PARENT_ID, CASE_ID, PROPERTY_ID, PROPERTY_TYPE_ID)  Values    (203, 200, 4000, 2, 13);  
--parent property should be 1 not 2
oracle database-design
  • 1 个回答
  • 1362 Views
Martin Hope
kevinskio
Asked: 2012-11-24 06:13:31 +0800 CST

在带有 Union 的视图中强制数字精度

  • 0

我正在使用实体框架和 Oracle。Oracle 的 ODAC 似乎有一个已知的错误,即 NUMBER 类型的数据被实体框架转换为 Int64。我认为一个观点会帮助我,但

CREATE OR REPLACE VIEW test as
select 1 AS ONE ,CAST(2 AS NUMBER(1)) AS TWO ,CAST(3 as INT) AS THREE from dual
union
select 1 AS ONE ,CAST(2 AS NUMBER(1)) AS TWO ,CAST(3 as INT) AS THREE from dual

当您查看视图时,数据类型是数字,所有这些都没有精度。这似乎是 UNION 的结果

CREATE OR REPLACE VIEW test as
select 1 AS ONE ,CAST(2 AS NUMBER(1)) AS TWO ,CAST(3 as INT) AS THREE from dual

产生 NUMBER、NUMBER(1)、NUMBER 作为数据类型

是否有一种解决方法可以强制 Oracle 在使用 UNION 的视图中获得精度?

编辑:@Phil 询问所需的结果是。他是正确的,实体框架必须具有精度才能使用,因此上面示例中所需的数据类型将是 NUMBER(1)

编辑:@Phil for this version Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Windows 32 位上的生产带有联合的视图给出了一个没有精度的 NUMBER 视图。实体框架将此解释为 int 64。

我正在寻找一种解决方案,它以实体框架可以理解为 32 位整数的精度显示 NUMBERS。从 NUMBER(1) 到 NUMBER (9) 的任何精度都可以完成这项工作。

oracle oracle-11g-r2
  • 1 个回答
  • 2529 Views
Martin Hope
kevinskio
Asked: 2012-10-30 07:02:28 +0800 CST

在系统表上创建外键约束的陷阱?

  • 1

我有许多表,其中包含有关系统中表和包的元数据。这旨在成为分析师和文档的资源,因此不用于创建数据。

其中一些表格中出现的一列显示了对象的用户或“所有者”。数据应该只包含数据库中的用户帐户,从元数据表到 sys.user$ 的外键约束似乎是一个很好的做法。

然而,我一直小心翼翼地接近 SYS 表,我惊讶地发现 SYS.USER$ 没有主键,只有 NAME 列上的唯一索引。

据我所知,我无法在 sys.all_users 上创建外键。或者我可以创建一个表作为从 all_users 中选择用户名、user_id,以便在插入时检查数据条目,但这一切看起来都很笨拙。

有没有更好的方法来访问具有主键和所有模式名称的表?

我最终添加了一个检查约束作为不会混淆系统文件的硬编码解决方案。我仍然认为应该有办法获得可用作外键约束的模式或“所有者”的列表。

@Phil,你为什么不发表你的评论作为答案?

oracle oracle-11g-r2
  • 1 个回答
  • 291 Views
Martin Hope
kevinskio
Asked: 2012-09-18 05:35:33 +0800 CST

如何在同一台机器上安装 Oracle 10g Express 和 11g Enterprise

  • 4

我必须继续维护一个从 9i 数据库接收信息(每天大约 20 次插入和更新)的 Oracle 8i 数据库。我正在将 9i 数据库升级到不支持到 8i 的数据库链接的 11g。

计划是从 Oracle 11g 链接到 Oracle 10 XE,然后再链接到 8i,希望有一天我不必这样做。

我已经发现文章指出不建议在任何其他版本之后安装 XE。

有没有人并排安装 XE 和另一个 Oracle 版本?使用了什么命令,遇到了什么问题?

编辑:@George3一些论坛帖子表明您可以使用 JDBC 驱动程序连接 11g 和 8i。请添加一些细节并将其作为答案发布。

oracle oracle-11g-r2
  • 2 个回答
  • 3788 Views
Martin Hope
kevinskio
Asked: 2012-09-14 07:03:58 +0800 CST

这个业务逻辑可以通过条件数据库约束来强制执行吗?

  • 7

我试图在数据库中复制包含 Intranet C# Web 应用程序的业务逻辑,以便其他数据库可以访问它并在相同的规则下工作。如果不使用 hack,这个“规则”似乎很难实施。

CREATE TABLE CASE_STAGE
(
  ID                        NUMBER(9)           PRIMARY KEY NOT NULL, 
  STAGE_ID                  NUMBER(9)           NOT NULL,
  CASE_PHASE_ID             NUMBER(9)           NOT NULL,
  DATE_CREATED              TIMESTAMP(6)        DEFAULT CURRENT_TIMESTAMP     NOT NULL,
  END_REASON_ID             NUMBER(9),
  PREVIOUS_CASE_STAGE_ID    NUMBER(9),
  "CURRENT"                 NUMBER(1)           NOT NULL,
  DATE_CLOSED               TIMESTAMP(6)        DEFAULT NULL
);

和

CREATE TABLE CASE_RECOMMENDATION
(
  CASE_ID                   NUMBER(9)           NOT NULL,
  RECOMMENDATION_ID         NUMBER(9)           NOT NULL,
  "ORDER"                   NUMBER(9)           NOT NULL,
  DATE_CREATED              TIMESTAMP(6)        DEFAULT CURRENT_TIMESTAMP     NOT NULL,
  CASE_STAGE_ID             NUMBER(9)           NOT NULL
);

ALTER TABLE CASE_RECOMMENDATION ADD (
  CONSTRAINT SYS_C00000
 PRIMARY KEY
 (CASE_ID, RECOMMENDATION_ID));

业务逻辑可以概括为

When Inserting into CASE_STAGE
If CASE_STAGE.STAGE_ID = 1646
THEN
 CASE_STAGE.PREVIOUS_STAGE_ID must be found in CASE_RECOMMENDATION.CASE_STAGE_ID

这个逻辑可以体现在 Check 约束中还是丑陋的触发器是唯一的方法?

编辑:

  • 对于 CASE_STAGE.STAGE_ID 的所有值,必须在 CASE_STAGE.ID 中找到 PREVIOUS_STAGE_ID 的值
  • 应用程序不允许从 CASE_RECOMMENDATION 中删除,一旦它不再是 CURRENT(即当 CASE_STAGE.CURRENT 的值为 0 时,该阶段关闭并且不能再更改,当 = 1 时,这是活动的阶段或行现在可以更改。)

编辑:在这里使用所有优秀的想法和评论是解决这个问题的有效方法

CREATE MATERIALIZED VIEW LOG ON CASE_STAGE
TABLESPACE USERS
STORAGE    (
            BUFFER_POOL      DEFAULT
           )
NOCACHE
LOGGING
NOPARALLEL
WITH ROWID;

CREATE MATERIALIZED VIEW LOG ON CASE_RECOMMENDATION
TABLESPACE USERS
STORAGE    (
            BUFFER_POOL      DEFAULT
           )
NOCACHE
LOGGING
NOPARALLEL
WITH ROWID;

CREATE MATERIALIZED VIEW CASE_RECOMMENDATION_MV REFRESH FAST ON COMMIT AS
  SELECT
         cr.ROWID cr_rowid, --necessary for fast refresh
         cs.ROWID cs_rowid, --necessary for fast refresh
         cr.case_id,
         cs.stage_id,
         cr.recommendation_id
         cr.case_stage_id,
         cs.previous_case_stage_id
  FROM   CASE_RECOMMENDATION cr,
         case_stage cs
  WHERE  cs.previous_case_stage_id = cr.case_stage_id (+)
  AND CS.PREVIOUS_CASE_STAGE_ID IS NOT NULL
  AND EXTRACT (YEAR FROM CS.DATE_CREATED) > 2010 --covers non conforming legacy data
  AND CR.RECOMMENDATION_ID IS NULL
  AND cs.stage_id =1646;  
--this last line excludes everything but problem cases due to the outer join

ALTER TABLE CASE_RECOMMENDATION_MV ADD CONSTRAINT CASE_RECOMMENDATION_ck CHECK (
    (previous_case_stage_id IS NOT NULL AND case_stage_id IS NOT NULL)
);

在没有推荐的情况下使用现有包插入 1646 阶段时,错误是

ORA-12008: error in materialized view refresh path
ORA-02290: check constraint (APPBASE.CASE_RECOMMENDATION_MV_C01) violated
ORA-06512: at line 49

任务完成!不是物化视图的目的,但比触发器更好。

oracle database-design
  • 4 个回答
  • 1235 Views
Martin Hope
kevinskio
Asked: 2012-02-13 14:36:58 +0800 CST

用户所需的最低权限

  • 5

我正在 Windows 2003 上配置一个 10g Express 数据库,它将作为公共 Web 服务器的后端。强化数据库还有许多其他事情要做,但一个好的起点是用户权限。我知道用户需要连接和创建会话权限。所有的表、过程和包都归他们所有。

在他们自己的架构上进行基本 CRUD 操作是否需要任何其他权限?

oracle best-practices
  • 1 个回答
  • 7071 Views
Martin Hope
kevinskio
Asked: 2011-12-17 12:07:32 +0800 CST

如何验证下一个序列值是否可以用作新的主键

  • 1

我有很多带有这样附加触发器的表

BEFORE INSERT
ON BRULES 
...snip...
  if inserting and :new.ID is NULL then
  SELECT BRULES_SEQ.nextval into :new.ID FROM DUAL;
  end if;

由于一种有趣的编码风格,应用程序确实在一些具有空 ID 的表上插入,这会触发触发器并使用现有序列。对于其他表,它获取最新记录的 ID 并添加 1。在这种情况下,不使用序列并且与表中的记录数不同步。

如何判断序列的下一个值是否对插入有效?我可以读取序列名称的所有触发器,然后执行一些动态 SQL 来比较序列的最大 ID 和当前值,但这似乎有点笨拙。

oracle oracle-11g-r2
  • 2 个回答
  • 3995 Views
Martin Hope
kevinskio
Asked: 2011-11-30 07:45:43 +0800 CST

Oracle 10g express 数据库链接到 Oracle 8i

  • 6

我将 9i 安装升级到 11g,只有一个问题。不再支持 11g 和我们的旧 8i 数据库之间的数据库链接。我必须每天将数据从 11g 传输到 8i 两到三次,所以我认为可以使用 10g express 来链接数据库。数据将在 11g 中创建,写入 10g 中的表,然后写入 8i。(我同意这不是最优雅的解决方案,我可以使用高级队列表来改进它)。

10g express 是否支持数据库链接到 Oracle 8i?

编辑:感谢 Oracle 文档的链接。有人真的用 10g express 做过这个吗?

编辑:8i 数据库是 Oracle8i 企业版 8.1.7.0.0 版 - 生产 中间将是 10g 快递 for windows 原始数据库是 Oracle 数据库 11g 企业版 11.2.0.1.0 版 - 生产

oracle oracle-11g-r2
  • 1 个回答
  • 2423 Views
Martin Hope
kevinskio
Asked: 2011-11-28 14:11:26 +0800 CST

数据库中的决策表:一个有效的解决方案?

  • 2

我必须扩展使用 Oracle 11g 处理法律案件的 .Net 4/C# 案件管理应用程序。

我的预算很少,我在 Oracle 方面的经验和一个非常初级的 C# 开发人员可以完成这项工作。附加模块将由不超过 20 人在 Intranet 上使用。

现有的规则一般是这样的:

  • 为了完成一个操作,表中必须存在属性 a、属性 b、属性 c,并且与必须验证新插入的表具有明确定义的关系
  • 对于法律案件,新的业务规则更像是“一切都是例外”,因为其他表中的数据条目可能会或可能不会影响基于未知条件的未来交易的结果,因此更正式地重述

现有应用程序使用 Microsoft Workflow 来实施业务规则。这已被证明是笨拙的,对我们来说几乎无法使用。Drools 及其商业等价物同样复杂,无法实现让管理者了解其业务逻辑的目标。

  • 如果用户无需阅读 C# 注释或代码就可以在报告中看到业务逻辑,那将是一个好处。
  • 无需关闭 Web 应用程序即可快速添加或禁用逻辑
  • 鉴于我们的预算和技能有限,实施起来相当容易

这让我想起了将业务逻辑作为一系列决策表保存在数据库中的老式想法。这仍然是这样做的,还是认为在应用程序中保留业务逻辑的效率明显更好?

编辑:工作流作为服务实现。我的理解是它针对的是长时间运行的工作流程。在我们的例子中,用户按下保存按钮,工作流运行。我们的问题是
- 在我们的机器上开发非常缓慢、冻结、崩溃
- 难以调试
- 工作流管理器有时会无缘无故地抛出几个小时的错误
- 触摸一个工作流,你必须更改其他 14 个文件
- 应用程序对用户来说很慢,我们已经将其中的一部分追溯到工作流程。

在数据库中进行验证开始看起来不错,因为验证全部基于数据库中的数据。
@catcall 有 10 或 12 名律师不使用该应用程序,但有 8 或 10 名管理员进行数据输入。
我们刚刚完成桌面升级,但老板认为程序员承包商的设备不应该比员工更好。因此,具有 4 个内核和 3 GB 内存的 Windows XP 是我们能做的最好的。我将调查是否有业务逻辑类型的任何分类。其中一些可以在应用程序中更有效地完成。其他类型可能更容易在数据库端更改和配置。

best-practices oracle-11g-r2
  • 1 个回答
  • 831 Views
Martin Hope
kevinskio
Asked: 2011-11-01 11:12:03 +0800 CST

基于函数的索引作为条件唯一键?

  • 1

我有一个搜索表,它有一个生成的主键 PK_ID,并且在 FK_ID 列中还有来自三个或四个其他表的主键

CREATE TABLE METADATA  
(  
  PK_ID        NUMBER(10)                       NOT NULL,  
  OBJ_OWNER    VARCHAR2(35 BYTE)                NOT NULL,  
  OBJ_PACKAGE  VARCHAR2(35 BYTE),  
  OBJ_NAME     VARCHAR2(35 BYTE)                NOT NULL,  
  OBJ_TYPE     NUMBER(10)                       NOT NULL,  
  FK_ID        NUMBER(10)                       NOT NULL  
);

例如,当 OBJ_TYPE = 1 时,对于 OBJ_TYPE 的值,每个 FK_ID 都应该是唯一的。

我想我可以使用基于函数的索引来做到这一点,但是 Tom Kyte 对此讨论的链接在一些网站上被破坏了,我不确定如何。
(甲骨文 9.2.0.8)

复合索引将完成这项工作。如果可以将基于函数的索引用作其他表的外键,那将是一个好处。这可能吗?

oracle constraint
  • 1 个回答
  • 5306 Views
Martin Hope
kevinskio
Asked: 2011-09-15 12:12:26 +0800 CST

更改 NLS_TIMESTAMP_FORMAT 的后果

  • 4

我管理一个 9.2.0.8 数据库,其中NLS_TIMESTAMP_FORMAT设置为'DD-MON-RR HH.MI.SSXFF AM';.

CAST TO TIMESTAMP使用该函数时,这会导致奇怪的结果:

select CAST('14-SEP-2011' AS TIMESTAMP) "DATE" from dual;
----------
14-SEP-2020 11:00:00.000000 AM  

如果我改变了NLS_TIMESTAMP_FORMAT,'DD-MON-YYYY HH.MI.SSXFF AM'那么我很高兴。

更改NLS_TIMESTAMP_FORMAT数据库上的参数会YYYY产生任何后果吗?

oracle configuration
  • 2 个回答
  • 5435 Views
Martin Hope
kevinskio
Asked: 2011-08-26 08:13:53 +0800 CST

您可以在创建视图时触发操作吗?

  • 2

是否可以创建在用户模式上创建视图时触发的触发器?

我想创建一个元数据表,它将包含所有视图和一个包含它们应该做什么的列表。在这个系统(Oracle 9.2.0.8)中,只有一个用户拥有创建视图的权限,这样可能会更容易。

事件的顺序应该类似于视图被创建触发并在元数据表的表中插入视图的名称

我可以编写一些包来使用动态 sql 创建视图,但这似乎有点矫枉过正

oracle
  • 1 个回答
  • 768 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve