标签: plsql

如何在包中声明公共和私有项?

任何人都可以请解释我之间的差异public items inside the package和private items inside package?

这是什么类型的减速:

create or replace package BOOK_MANAGEMENT
as
 function OVERDUE_CHARGES(aName IN VARCHAR2) return NUMBER;
 procedure NEW_BOOK (aTitle IN VARCHAR2,
   aPublisher IN VARCHAR2, aCategoryName IN VARCHAR2);
end BOOK_MANAGEMENT;
Run Code Online (Sandbox Code Playgroud)

oracle plsql package

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

无效的标识符SQL

所以我有这个:

SELECT p.plantnaam,o.levcode,o.offerteprijs
FROM plant p, offerte o
JOIN (SELECT plantcode , MIN(offerteprijs) AS offprijs 
      FROM offerte
      GROUP BY plantcode) s
  ON s.plantcode = p.plantcode
  AND s.offprijs = o.offerteprijs
ORDER BY p.plantnaam,l.levcode
Run Code Online (Sandbox Code Playgroud)

显然在第6行,p.plantcode突然神奇地成为无效的标识符.为什么是这样?为什么在那之前,完全相同的表中的所有其他人都完美无缺?

oracle plsql oracle11g

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

日期作为sql中的数字

当我们在Excel单元格中键入当前日期为08-May-2013时右键单击单元格,当我单击数字作为类别时,我会得到一个数字

    Date-08-May-13
    Formatted one-41402.00
Run Code Online (Sandbox Code Playgroud)

所以无论如何我可以在sql中获得相同的数字

我试过用这个.

    select to_char(sysdate,'J') from dual
Run Code Online (Sandbox Code Playgroud)

但输出是2456421

我知道这是朱利安的价值

但是,任何人都可以帮助我获得输出,因为我正在获得excel ie; 41402

oracle plsql oracle10g date-arithmetic oracle11g

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

如何使用pl/sql进行批处理操作

我必须为很多表添加主键,并且我从stackoverflow获得了以下脚本(对于一个表):

ALTER TABLE table1 ADD ID NUMBER(12);
CREATE SEQUENCE table1Seq START WITH 1;
UPDATE table1 SET table1ID = table1Seq.NEXTVAL;
ALTER TABLE table1 ADD PRIMARY KEY (ID);
CREATE OR REPLACE TRIGGER table1PKSet
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
  :NEW.ID := table1Seq.NEXTVAL;
END;
/
Run Code Online (Sandbox Code Playgroud)

但是现在我已经为用户的所有表执行了相同的操作.

所以我想知道我是否可以使用pl/sql循环用户的所有表,并执行上述操作?

oracle plsql

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

PL/SQL中的INSERT语句在Oracle数据库中失败

在PLSQL中执行SQL语句时

DBMS_SQL.EXECUTE('insert into tablename VALUES(aNumber)');
Run Code Online (Sandbox Code Playgroud)

它给出了ASCII字符错误.当直接插入它成功并插入它.

oracle plsql

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

从2050年到1950年的神秘变化

有一些不寻常的事情发生.虽然移民,我有2050年之后一些时间(例如,二○五○年五月二十○日,21.11,2051),但由于某些原因,他们的Oracle更改为1950年,1951年等.如果你问我,它是由客户报告很烦人.这些是退休日期,所以很明显他们不能在20世纪50年代和60年代

原始表中的日期类似于YYYYMMDD格式,即20500130.所以这是我的合并声明

MERGE INTO employment_data emp                                                     
   USING   temp_02 src
   ON      (TO_NUMBER(src.id) = emp.id)
   WHEN MATCHED THEN UPDATE SET 
       emp.retirement_day = DECODE(TO_NUMBER(src.retirement), 0, NULL, TO_DATE(src.retirement, 'YYYY.MM.DD'));
Run Code Online (Sandbox Code Playgroud)

其他日期还可以(例如20301204),但是2050年之后的任何日期都是疯狂的.知道我怎么能解决这个烦恼?

Thx提前:-)

oracle plsql oracle11g plsqldeveloper

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

Oracle PL/SQL中的<>''条件

我以前从未遇到过这个:

fieldname <> ''
Run Code Online (Sandbox Code Playgroud)

如何在Oracle PL/SQL中读取此条件?

oracle plsql

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

在声明PL/SQL过程/函数时,"IN"和"OUT"关键字是强制性的吗?

我现在正在学习PL/SQL并遇到一些误解,就像你声明一个程序一样,当你指出参数的类型时,你是否必须写关键词'IN'和'OUT'?因为我在Oracle文档网站上看到了一些程序声明.在一种情况下,IN出现在参数列表中

PROCEDURE double (
    original    IN  VARCHAR2,
    new_string  OUT VARCHAR2
  ) AS
  BEGIN
   new_string := original || original;
 END;

BEGIN
 DBMS_OUTPUT.PUT_LINE ....
Run Code Online (Sandbox Code Playgroud)

在另一种情况下,没有IN:

CREATE OR REPLACE PROCEDURE award_bonus (
  emp_id NUMBER, bonus NUMBER) AS
  commission    REAL;
  comm_missing  EXCEPTION;
BEGIN
  SELECT ....
Run Code Online (Sandbox Code Playgroud)

关键词'IS'和'AS'也有什么区别吗?

oracle plsql procedure

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

在具有NULL值的列上使用NOT IN运算符

我有一个表employee有一个列公司,其中包含所有空值

现在,我想使用NOT IN运营商作为公司名称

select * from employee where employee.company NOT IN ('ABC', 'DEF')
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这不应该改变结果,因为公司列已经有空值.

但是添加NOT IN0行.

这是因为employee.company列有NULL值吗?

sql oracle plsql

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

选择系统日期和其他列时,Oracle"缺少表达式"错误

到目前为止,我一直只使用SQL Server,这是我第一次使用Oracle,我无法弄清楚这一点.

我想选择可从视图访问的所有数据,并且我还要选择当前系统日期.我试图运行这组查询但没有返回任何内容.

SELECT
    (SELECT SYSDATE FROM DUAL),
    *
FROM myView;
Run Code Online (Sandbox Code Playgroud)

我注意到它missing expression被抛出,但我无法理解(不知道)我的查询有什么不对.

更新:

这是我正在尝试运行的整个查询,没什么特别的.

sql oracle plsql

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