标签: sqlplus

如何在SQL中仅列出某些电子邮件?

所以我在SQL中有表格,我想只列出在yahoo.com上发送电子邮件的人

例如:

EMAIL
------------
1234@yahoo.com
djasjdkl@gmail.com
414353@yahoo.com
12345@gmail.com
78923@msn.com
390214@yahoo.com
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

sql sqlplus

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

将 oracle DB 中的 100 万条记录更新为 10k 批;

我必须将 oracle db 中的表更新为 10k 的批次。

我试过这个:

BEGIN
        WHILE (true) LOOP
        UPDATE TOP (10000) CUSTOMERS SET ACTIVE = 'N' WHERE ACTIVE='Y';
        IF sql%notfound THEN
                EXIT;
        END IF;
        COMMIT;
        END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为 plsql 不支持 top。

有什么建议?

sql database oracle plsql sqlplus

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

为什么我不能使用SQLcl通过jdbc连接

我可以使用SQLDeveloper连接到远程数据库.

我试图从命令行使用sqlcl连接到同一个数据库,但我收到一个错误.

这是我正在运行的命令:

/bin/sql username/pass@delphix-vdb-n-1.va2.b2c.nike.com:1521/vdbsl14 
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

/bin/sql username/pass@//delphix.......etc.
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

SQLcl: Release 4.2.0.16.131.1023 RC on Wed Jun 15 11:36:33 2016

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

  USER          = username
  URL           = jdbc:oracle:thin:@delphix-vdb-n-1.va2.b2c.nike.com:1521/vdbsl14
  Error Message = Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
Username? (RETRYING) ('username/*********@delphix-vdb-n-1.va2.b2c.nike.com:1521/vdbsl14'?) 
Run Code Online (Sandbox Code Playgroud)

同样在SQLDeveloper中,我只是在"自定义jdbc url"下输入以下内容并且它连接没有任何问题,所以我希望我可以使用相同的URL通过命令行连接,但到目前为止,它无法正常工作:

jdbc:oracle:thin:@delphix-vdb-n-1.va2.b2c.nike.com:1521:vdbsl4
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus sqlcl

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

ORA-04021: 等待锁定对象时发生超时

我有这个匿名 PL/SQL 块,它计算并打印从表中返回的值。

DECLARE
    U_ID NUMBER :=39;
    RETAIL BINARY_FLOAT:=1;
    FLAG NUMBER;
BEGIN
    SELECT NVL(RETAIL_AMOUNT,1),UNIT_ID INTO RETAIL, FLAG FROM UNITS WHERE UNIT_ID=U_ID;
    LOOP
    SELECT NVL(MAX(UNIT_ID),U_ID) INTO FLAG FROM  UNITS WHERE FATHER_ID=FLAG;
    IF FLAG=U_ID THEN EXIT; END IF;
    SELECT RETAIL* RETAIL_AMOUNT INTO RETAIL FROM UNITS WHERE UNIT_ID=FLAG;
    EXIT WHEN FLAG=U_ID;
    END LOOP;
DBMS_OUTPUT.PUT_LINE( RETAIL);
END;
Run Code Online (Sandbox Code Playgroud)

这个块工作正常,但我想使用 PL/SQL 函数做同样的事情

我写的函数如下:

CREATE OR REPLACE FUNCTION GET_UNIT_RETAIL(U_ID NUMBER)
     RETURN NUMBER
IS
    RETAIL BINARY_FLOAT:=1;
    FLAG NUMBER;
BEGIN
    SELECT NVL(RETAIL_AMOUNT,1),UNIT_ID 
    INTO RETAIL, FLAG 
    FROM UNITS 
    WHERE UNIT_ID=U_ID; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql sqlplus

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

登录sqlplus后,为什么总是打印用户名?

登录sqlplus后为什么总是在linux中打印用户名?

$ sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 7 06:32:57 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter user-name: scott

Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

USER is "SCOTT"
Run Code Online (Sandbox Code Playgroud)

我不想打印"USER is"SCOTT"".

一个线索是"USER is"这个消息,我可以看到它

/software/oracle/cli-11.02.00.04/sqlplus/mesg/sp2us.msg

 sqlplus/mesg/sp2us.msg:572:00291,0, "USER is \"%s\"\n"
Run Code Online (Sandbox Code Playgroud)

我需要在某处更改任何设置吗?

linux oracle sqlplus

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

如何更改在 SQL Developer for Oracle 12c 中连接的用户?

我创建了一个用户并授予它权限,但我无法从 SQL Developer 以该用户身份连接到数据库。

当我在 SQL*Plus 中输入代码时,它显示它已连接,如下图所示

图片

但是,当我在 Oracle SQL Developer 中尝试同样的事情时,它显示我是 SYS 用户。

在此处输入图片说明

如何解决这个问题?

编辑

图片

oracle sqlplus oracle-sqldeveloper oracle12c

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

SQLPLUS 使我的脚本提示:输入行值

我正在运行最基本的 oracle sql 脚本并在 sqlplus 中运行它。我不明白为什么我的脚本停止提示我输入“为行输入值”。FOR LOOP 不是应该在循环之前打开游标吗?

代码是:

/*
  File: myTest.sql
*/

SET SERVEROUTPUT ON SIZE UNLIMITED
SET LINESIZE 140
SET PAGESIZE 60
SET ECHO OFF
SET TERM ON
SET FEEDBACK OFF
SET SHOW ON
SET VERIFY OFF

SPOOL &1

/* Run Parameters & Variables */
DECLARE
text_line         VARCHAR2(4000);

/* Cursors & Row Types */
CURSOR myCursor IS 
  select spriden_pidm, spriden_id, spriden_first_name, spriden_last_name from spriden where spriden_id = '1234';

myCursorRec       myCursor%ROWTYPE;

/* Main Logic */
BEGIN 
  /* Read through …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql sqlplus

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

如何在脚本中检测DDL语句并退出

当在KSH中针对Linux上的Oracle 11.2.0.4或更高版本的数据库通过SQLPLUS运行脚本时,是否可以检测DDL语句,退出并回滚所有以前的非DDL语句?所以这将是这样的,但增强了停止第一个DDL.

    WHENEVER SQLERROR EXIT ROLLBACK
    @script.sql
Run Code Online (Sandbox Code Playgroud)

有没有办法在PLSQL中设置异常处理,以便在第一个DDL语句执行之前立即退出?

linux oracle ksh plsql sqlplus

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

无法连接到刚刚在 docker 上的 oracle 上创建的新用户 (ORA-01017)

我正在尝试在 Ubuntu 18 上使用 Oracle 12c 来学习我的工作。

为此,我正在使用我曾经在其他 PC 上创建的 docker-compose 文件。

version: '2'
services:
 database:
   image: store/oracle/database-enterprise:12.2.0.1
   volumes:
     - ./data:/ORCL # persistent oracle database data.
   ports:
     - 1529:1521
     - 8082:8080
     - 5500:5500
Run Code Online (Sandbox Code Playgroud)

安装后,我可以以系统管理员身份登录,然后在下面输入这些代码以创建用户。

version: '2'
services:
 database:
   image: store/oracle/database-enterprise:12.2.0.1
   volumes:
     - ./data:/ORCL # persistent oracle database data.
   ports:
     - 1529:1521
     - 8082:8080
     - 5500:5500
Run Code Online (Sandbox Code Playgroud)

然后,我尝试连接到它。

sqlplus BUS/DEMO_PASS@localhost:1529/ORCLCDB.localdomain
Run Code Online (Sandbox Code Playgroud)

我想像在其他 PC 上一样登录,但不是这样,我收到了这个错误。

ORA-01017: invalid username/password; logon denied
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus oracle-sqldeveloper oracle12c

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

从bat文件运行SQL脚本(Oracle,批处理)

我有蝙蝠脚本:

@echo off
cls
:start
sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=X.Y.Z.F)(Port=1521))
                               (CONNECT_DATA=(SID=some_sid))) @test.sql
goto end

:end
pause 0
Run Code Online (Sandbox Code Playgroud)

和我的test.sql

DECLARE
test varchar2(32000);
BEGIN
  test:='value';
  DBMS_OUTPUT.PUT_LINE('string test');
  DBMS_OUTPUT.PUT_LINE(test||' test');
END;
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了:

在此处输入图片说明

这是什么意思?

sql oracle sqlplus batch-file

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