小编Jus*_*ave的帖子

改变JOB_QUEUE_PROCESSES

在Oracle DB上将JOB_QUEUE_PROCESSES更改为0会阻止Oracle作业被调度吗?

我在http://download-west.oracle.com/docs/cd/A97630_01/server.920/a96521/jobq.htm找到了一些有关它的信息,主要是以下内容:

JOB_QUEUE_PROCESSES初始化参数控制实例是否启动协调器作业队列进程.如果此参数设置为0,则在数据库启动时不会启动协调程序作业队列进程,因此不会执行任何作业队列作业.JOB_QUEUE_PROCESSES初始化参数还指定可以在实例上并发运行的最大Jnnn进程数.可指定的最大进程数为1000.

但是,我不确定"协调员工作队列"在宏观计划中代表什么.

非常感谢您及时回复.

database oracle dbms-scheduler dbms-job

4
推荐指数
1
解决办法
2万
查看次数

为什么我看不到此PL/SQL块的输出?

我想要一个代码示例.

我试试这个:

DECLARE
     var NUMBER;
 BEGIN
     /*N.B. for loop variables in pl/sql are new declarations, with scope only inside the loop */ 
     FOR var IN 0 .. 10 LOOP 
          DBMS_OUTPUT.put_line(var);
     END LOOP;

     IF (var IS NULL) THEN
          DBMS_OUTPUT.put_line('var is null');
     ELSE
          DBMS_OUTPUT.put_line('var is not null');
     END IF;
 END;
Run Code Online (Sandbox Code Playgroud)

没有输出(虽然我知道这不是一个无限循环).为什么这个不打印?

编辑:通过数据库管理器界面修复了非打印代码.

sql oracle stored-procedures

4
推荐指数
2
解决办法
1万
查看次数

在oracle的BLOB字段中保存并检索图像?

如何使用C#在Oracle的Blob字段中保存和检索图像?使用数据库存储图像是一个不错的选择吗?

c# oracle

4
推荐指数
1
解决办法
2222
查看次数

在TNSORANAMES.ora中引用外部文件

我正在尝试编写一个VB脚本来添加/编辑/删除tnsnames.ora中的一些条目.引用/修改外部文件(比如myProjectOraNames.ora)而不是修改tnsnames.ora会很方便

使用此配置(假设可能),Oracle客户端应引用现有的tnsnames.ora文件和新的myProjectOraNames.ora来获取服务详细信息.

是否有任何选项/配置可以实现此功能?

oracle oracleclient

4
推荐指数
1
解决办法
4109
查看次数

在Oracle中解决"无法在查询中执行DML"错误

我已经创建了常规功能.它已成功创建.但是当我运行它时

select reg('awlad','01968688680','545466455','12345') from dual
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:

ORA-14551: cannot perform a DML operation inside a query
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

CREATE OR REPLACE FUNCTION reg(
name in varchar2,
cellNo in varchar2,
voterId in varchar2,
pass in varchar2
)
RETURN NUMBER
IS 
succ NUMBER;
BEGIN 
      succ:=0;
      insert into logInfo values(loginfo_seq.nextval,cellNo,pass,0);
      succ:=1;
      insert into passInfo values(name,cellNo,voterId);
      succ:=2;
      RETURN succ;
END;
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle10g

4
推荐指数
1
解决办法
2万
查看次数

语法错误:缺少表达式(ORA-00936)

我有2张桌子,FacilitiesServices.

CREATE TABLE Facilities (
facility_id NUMBER(2) NOT NULL,
facility_name VARCHAR2(20) NOT NULL,
CONSTRAINT pk_facil_id PRIMARY KEY (facility_id)
);

CREATE TABLE Services (
service_id NUMBER(2) NOT NULL,
service_name VARCHAR(20) NOT NULL,
service_facility NUMBER(2) NOT NULL,
CONSTRAINT pk_serviceid PRIMARY KEY (service_id)
);

ALTER TABLE Services
add CONSTRAINT fk_servicefacility FOREIGN KEY(service_facility) 
REFERENCES Facilities(facility_id);
Run Code Online (Sandbox Code Playgroud)

如果我尝试将记录输入"服务"表,如下所示:

INSERT INTO Services (service_id, service_name, service_facility) 
SELECT 06, 'Rooms', 
(SELECT facility_id, FROM Facilities WHERE facility_name = 'Hotel') 
FROM Dual;
Run Code Online (Sandbox Code Playgroud)

我在7个插入语句中有3个出现错误"缺少表达式".缺少什么表达?

sql oracle database-design foreign-keys ora-00936

4
推荐指数
1
解决办法
8万
查看次数

创建Oracle Package Body

我正在尝试为包装奠定基础,但即使开始也遇到了麻烦.我已经成功创建了一个基本的包规范,并且只想测试包体,但是我无法编译它.规范代码是:

CREATE OR REPLACE PACKAGE synchronize_my_data 
AS
  PROCEDURE synchronize_data(p_run_date IN date);
END synchronize_my_data;
Run Code Online (Sandbox Code Playgroud)

这是包体代码:

CREATE OR REPLACE PACKAGE BODY synchronize_my_data 
IS
  PROCEDURE synchronize_data(p_run_date IN date) IS
      PROCEDURE process_deletes(p_run_date IN date) IS
      BEGIN
          dbms_output.put_line('Run Date: ' || to_char(p_run_date, 'MM/DD/YYYY'));      
      END process_deletes;
  BEGIN
    process_deletes(p_run_date);
  END synchronize_data;

END synchronize_my_data;
Run Code Online (Sandbox Code Playgroud)

我不断收到编译错误,但无法弄清楚代码有什么问题.它似乎是基本代码,我只是遗漏了一些明显的东西吗?

oracle plsql

4
推荐指数
1
解决办法
1万
查看次数

SQL删除的行返回-“ ORA-02292:违反完整性约束(..)-找到子记录”

我有一个包含四个表的数据库。图中的关系架构如下:

在此处输入图片说明

以下是这些行:

在此处输入图片说明

现在,我正在尝试删除具有所有者ID的所有者OW1。由于id是所有者表中的主键,而其他表中的外键则不允许我删除该行。这是我尝试的SQL:

 delete from owners
 where ownerid = 'OW1' and petid = 'PT1'
Run Code Online (Sandbox Code Playgroud)

它返回:

ORA-02292: integrity constraint (TEST_1.ADDRESSES_OWNERS_FK) violated - child record found

而且我不允许在关系图中将删除规则设置为“ CASCADE”。请帮忙 :(

sql database oracle11g

4
推荐指数
2
解决办法
4万
查看次数

触发器中的pragma autonomous_transaction

我在一个表上写了一个触发器,在某个条件下从其他表中删除数据.触发器具有pragma autonomous_transaction,触发器按预期工作.但是,我确实想知道将来是否会出现任何问题,比如说多个用户/来源同时插入数据等等......有什么建议吗?

源表t1:

--------------------------------------------
| user_id | auth_name1 | auth_name2 | data |
--------------------------------------------
|  1      |  Name1     |  Name2      | d1  |
|  2      |  Name3     |  Name4      | d2  |
|  3      |  Name5     |  Name1      | d3  |
--------------------------------------------
Run Code Online (Sandbox Code Playgroud)

目标表t2:

   ------------------------------------------------
   | record_id |  identifier | status |   data1   |
   ------------------------------------------------
   |  100      |  Broken     |  11    |   Name1   |
   |  101      |  Reminder   |  99    |   Name1   |
   |  102      |  Broken     |  99    |   Name2 …
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql oracle11g plsqldeveloper

4
推荐指数
1
解决办法
3万
查看次数

甲骨文如何更改标识列的下一个自动生成的值

我已经创建了表项目,如下所示:

CREATE TABLE projects (
  project_id NUMBER(10,0) GENERATED BY DEFAULT ON NULL AS IDENTITY ,
  project_name VARCHAR2(75 CHAR) NOT NULL
Run Code Online (Sandbox Code Playgroud)

然后,我从旧的MySQL表导入数据时插入了约150,000行。MySQL具有我需要保留的现有ID号,因此我在插入过程中将ID号添加到了SQL中。现在,当我在oracle表中插入新行时,id是一个非常小的数字。您能否告诉我如何将project_id列上的计数器重置为从150,001开始,以免弄乱我现有的任何ID号?基本上我需要以下的oracle版本:

ALTER TABLE tbl AUTO_INCREMENT = 150001;
Run Code Online (Sandbox Code Playgroud)

编辑:Oracle 12c现在支持标识数据类型,允许使用不需要我们创建序列+插入触发器的自动编号主键。

解决方案:经过一些创造性的google搜索词后,我能够在oracle docs网站上找到线程。这是更改身份下一个值的解决方案:

ALTER TABLE     projects    MODIFY  project_id  GENERATED BY DEFAULT ON NULL AS IDENTITY ( START WITH   150000);
Run Code Online (Sandbox Code Playgroud)

oracle12c

4
推荐指数
2
解决办法
5343
查看次数