标签: oracle12c

为什么Oracle 12c查询需要在表周围加双引号

我正在查询的数据库是Oracle 12c。数据库版本详细信息如下:

Oracle Database 12c 企业版版本 12.1.0.2.0 - 64 位生产版

PL/SQL 版本 12.1.0.2.0 - 生产

我试图消除 SQL 查询中每个视图或表都使用双引号的需要。

以下作品(来自 Oracle Sql Developer GUI)

select m."Metadata"
from "EvMetadata" m
Run Code Online (Sandbox Code Playgroud)

以下给出错误(来自 Oracle Sql Developer GUI)

select m.Metadata
from EvMetadata m
Run Code Online (Sandbox Code Playgroud)

错误是

ORA-00942: 表或视图不存在 00942. 00000 - “表或视图不存在” *原因:
*操作: 行: 2 列: 6 出错

我生成了DDL,看起来像这样

CREATE TABLE "EVP"."EvMetadata" 

("EvMetadataId" NUMBER(10,0) GENERATED ALWAYS AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER  NOCYCLE , 

"InsertDate" TIMESTAMP (6), …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

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

Oracle 立即关闭后抛出 ORA-12514

我的目标是让我的容器数据库进入挂载模式以执行系统更改语句以启用闪回功能。

为闪回事务配置数据库

环境:操作系统 Win 8.1 64 位、Oracle 12c (12.1.0.2.0) 64 位

我验证了我的侦听器和数据库服务都在运行。

监听器日志

Tue Sep 08 13:31:42 2015 系统参数文件为 C:\OracleServer\product\12.1.0\dbhome_1\network\admin\listener.ora 日志消息写入 C:\OracleServer\diag\tnslsnr\NA-D02979\ Listener\alert\log.xml 跟踪信息写入 C:\OracleServer\diag\tnslsnr\NA-D02979\listener\trace\ora_9672_20416.trc 跟踪级别当前为 0

从 pid=9672 开始侦听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.105.118)(PORT=1521))) 侦听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= 127.0.0.1)(PORT=1521))) 侦听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.\pipe\EXTPROC1521ipc))) 侦听器在启动时已完成向 CRS 的通知

时间戳 * 连接数据 [* 协议信息] * 事件 [* SID] * 返回代码 监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=NA-D02979.vgnet.volgrp.com)(PORT=5500) )(Security=(my_wallet_directory=C:\ORACLESERVER\admin\CDB1\xdb_wallet))(Presentation=HTTP)(Session=RAW)) 动态地址已侦听 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= 127.0.0.1)(PORT=1521))) 2015 年 9 月 8 日 13:32:25 * service_register * cdb1 * 0 2015 年 9 月 8 日 13:33:22 * service_update * cdb1 * 0

SqlPlus 的结果 …

oracle12c

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

SQLPLUS/AS SYSDBA 登录失败 ORA-12560

我正进入(状态

ERROR:
ORA-12560: TNS:protocol adapter error
Run Code Online (Sandbox Code Playgroud)

尝试以 SYSDBA 身份登录时出现适配器错误。我做了一些研究,发现首先在 Windows 服务中没有任何OracleJobSchedulerdb12gr1; OracleServicedb12gr1.. ETC

所以我添加了它们并开始:

C:\Windows\system32>oradim -new -sid db12gr1
Run Code Online (Sandbox Code Playgroud)

所以我也启动了一个监听器:

C:\Windows\system32>lsnrctl start
Run Code Online (Sandbox Code Playgroud)

之后,当我检查状态时,我得到:

C:\Windows\system32>lsnrctl status

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "XE" has 1 instance(s).
  Instance "XE", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Run Code Online (Sandbox Code Playgroud)

不确定这是否是我放弃所有其他问题的UNKNOWN问题,看起来像这样(在listener.ora中):SID_LIST_LISTENERlistener.oraLISTENER

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = …
Run Code Online (Sandbox Code Playgroud)

oracle oracle12c

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

如何使用 PL/SQL 循环 json 字符串?

我的示例仅返回BMW 2010. 我怎样才能让它AUDI 2000返回BMW 2010

declare
    sample_json   varchar2 (32767)
        := '

            [{"NAME":"AUDI","YEAR":"2000"},{"NAME":"BMW","YEAR":"2010"}]
';
begin
    apex_json.parse (sample_json);
    dbms_output.put_line (apex_json.get_varchar2 ('NAME'));
    dbms_output.put_line (apex_json.get_varchar2 ('YEAR'));
end;
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle12c

0
推荐指数
2
解决办法
5158
查看次数

在 pl/sql 过程中处理 SharePoint URL 空格的正确方法

我正在尝试指定 SharePoint 位置的文件路径。例如,如果 URL 是这样的,那么处理 URL 中的空格的最佳方法是什么?

file_path_ varchar2(2000) := 'https://business123.sharepoint.com/sites/TEST/Private Documents/Export Test';
Run Code Online (Sandbox Code Playgroud)

原始 URL 在“私有”和“文档”以及“导出和测试”之间有 %20。我尝试过与 inside 串联|| '' ||并使用" "inside ' '。有没有办法从 SharePoint 生成不同的 URL?尝试写入文件夹位置的用户具有完全访问权限和权限,因此我知道不是这样,而是阻止我写入该文件夹。

有人有什么很酷的想法吗?提前谢谢了。

oracle url sharepoint plsql oracle12c

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

有没有办法获取启动用户/架构的 sys_context('USERENV', 'CURRENT_USER')

如果我从 admin1 访问表 emp,则使用下面的函数,理想情况下它应该返回 0,这表示连接用户为“ADMIN”,但它返回 1(最终用户的连接使用 ADMINT_TEST1.emp)

即使选择audit_test1.emp(函数 check_user 在两种模式中都可用),我也希望获得 ADMIN1 用户的连接标识,例如:来自 admin1 用户

create or replace function check_user
return number
is
  n number;
begin
  SELECT sys_context('USERENV', 'CURRENT_USER') into usrname FROM dual;
  if (usrname ='AUDIT_TEST') then
    dbms_output.put_line('show user'||usrname);
    return 1;
  else 
    return 0;
  end if;
end ;
Run Code Online (Sandbox Code Playgroud)

测试功能(从用户运行:ADMIN1)

declare
  n number(1);
begin
  select audit_test.check_user into n from dual;
  dbms_output.put_line(n);
  select check_user into n from dual;
  dbms_output.put_line(n);
end;
/


Output
===============
show user   AUDIT_TEST
1
show user   ADMIN1
0
Run Code Online (Sandbox Code Playgroud)

这是预期的功能吗?即使发起用户是 ADMIN1,当我们发出 …

sql database oracle plsql oracle12c

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

SQL * Loader在oracle 12c中不起作用

嗨,我正在使用SQL * Loader,但它给我一个错误

SQL * Loader-128:无法开始会话

ORA-28040:没有匹配的身份验证协议。

我的Oracle是12c,SQL * Loader版本是9.2。 在此处输入图片说明 我该怎么办?

oracle sql-loader oracle12c

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

Oracle - 如何区分空字符串和非空字符串?

在匿名块中,我有一个空/空的输入字符串,并且想要针对非空字符串进行检查。例子:

DECLARE 
v_notnull varchar2(50):='this string is never null';
v_input varchar2(50):='';
BEGIN
    IF trim(v_input) != trim(v_notnull) THEN
        dbms_output.put_line('the strings do NOT match');
    ELSE 
        dbms_output.put_line('the strings DO match');
    END IF; 
END;
Run Code Online (Sandbox Code Playgroud)

这里的问题是,当我运行这个块时,'the strings DO match'即使我输入''与 string 不同的空字符串(又名 null),输出也始终v_input是这样'this string is never null'。如何确保 oracle 覆盖空字符串大小写?当v_input为空时我希望输出为'the strings do NOT match'.

oracle null plsql varchar2 oracle12c

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

如何使用 SUM 和 OVER 在 Oracle 中获取运行总计

我正在使用 Sum() Over (Partition by ...Order by ..) 函数来计算列的运行总计,但只要值重复(或重复),就会出现问题。Sum() over 似乎按值对它们进行分组,并将所有按值分组的总和作为移动总和。这不是我想要实现的目标。任何关于为什么它作为重复值的分组发生以及如何在不按行进行光标循环的情况下获得正确的运行总计的想法或输入,我们深表赞赏。下面是测试表及其数据的详细信息,并附加了包含预期结果的文件(附加文件中突出显示的列是 Oracle Sum() 计算错误的内容)。

CREATE TABLE RUNNINGTOTAL_TEST1
(
A1 NUMBER(10,0),
A2 VARCHAR2(20 BYTE), 
A2SUBCLASS VARCHAR2(1000 BYTE),  
A2CONTRI FLOAT(126), 
DENSERNK NUMBER);

Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2231113','CLASS1',0,1);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2231216','CLASS1',0,1);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2232517','CLASS1',0.0015,2);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2274031','CLASS1',0.0045,3);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2281035','CLASS1',0.0045,3);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2309174','CLASS1',0.0045,3);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2243993','CLASS1',0.0045,3);
Insert into RUNNINGTOTAL_TEST1 (A1,A2,A2SUBCLASS,A2CONTRI,DENSERNK) values 
(22418,'2301871','CLASS1',0.0045,3);
Insert into …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

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

错误处理后PL / SQL继续执行

我是PL / SQL的新手,并且遇到以下情况。

在下面的脚本中,如果他们发现任何异常,我希望脚本继续进行迭代。处理了异常,但是我无法在循环外执行continue语句。

declare
  l_max_ID number;
  l_Temp_val number;
  type array_t is varray(135) of varchar2(30);
  arrayTable array_t := array_t('YSXQTAAA', 'YSXQTAFA', ... );
  array array_t := array_t('YSXQNAAA', 'YSXQNAFA', ...);
begin
    dbms_output.put_line(arrayTable.count);

    for i in 1..arrayTable.count loop
        dbms_output.put_line('Tabla impactada ' || arrayTable(i));
        execute immediate 'select max(id)+1 from ' || arrayTable(i) into l_max_ID;
        execute immediate 'alter sequence ' || array(i) || ' restart start with ' || TO_CHAR(l_Max_ID);
        dbms_output.put_line('alter sequence RS1.' || array(i) || ' restart start with ' || TO_CHAR(l_Max_ID));
    end loop; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql loops exception oracle12c

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

标签 统计

oracle12c ×10

oracle ×9

plsql ×5

sql ×3

database ×1

exception ×1

loops ×1

null ×1

sharepoint ×1

sql-loader ×1

url ×1

varchar2 ×1