标签: sqlplus

在sqlplus/Oracle中将epoch转换为日期

我有下表:

SQL> desc recording
 Name                 Null?    Type
 -------------------- -------- ------
 CAPTUREID            NOT NULL NUMBER(9)
 STARTDATE            NOT NULL DATE
 ENDDATE                       DATE
 STATE                         NUMBER(1)
 ESTIMATEDENDTIME              NUMBER(13)
Run Code Online (Sandbox Code Playgroud)

这是这张表的一行:

SQL> select * from recording where CAPTUREID=14760457;

 CAPTUREID STARTDATE           ENDDATE             STATE ESTIMATEDENDTIME
---------- ------------------- ------------------- ----- ----------------
  14760457 29/09/2010 08:50:01 29/09/2010 09:52:04     0    1285746720000
Run Code Online (Sandbox Code Playgroud)

我很确定之前已经问过这么多次了,但到目前为止我找到的所有解决方案都没有真正起作用,所以...我如何ESTIMATEDENDTIME从原来的时代形式DD/MM/YYY HH:MI:SS转换为单一格式在SQLPLUS中查询?

谢谢!

oracle datetime sqlplus date epoch

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

在表中显示约束

您好我试图在我的一个表中显示约束但由于某种原因我收到消息没有选择行.下面是我创建的表格.

Create table Teams (
   TeamID varCHAR2(4) constraint Teams_TeamID_PK Primary Key,
   TeamName VARCHAR2(40) 
);
Run Code Online (Sandbox Code Playgroud)

这是我用来显示约束的代码.

SELECT constraint_name, 
       constraint_type,
       search_condition
  FROM USER_CONSTRAINTS
 WHERE table_name = 'Teams';
Run Code Online (Sandbox Code Playgroud)

我是菜鸟,所以我想确保我明白了什么是错的.我试图放弃表认为我的约束没有采取 - 我没有,也没有在创建表时我收到任何错误,我在另一个表中引用TeamID.因此,当我尝试删除表时,我得到一条错误消息,这是我希望的.

sql oracle sqlplus constraints

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

如何让员工与他们的经理在一起

这就是我想要输出的样子:

Employee   Emp# Manager Mgr# 
   BLAKE   7698 KING    7839 
   CLARK   7782 KING    7839 
   JONES   7566 KING    7839 
   MARTIN  7654 BLAKE   7698 
   ALLEN   7499 BLAKE   7698 
   TURNER  7844 BLAKE   7698 
   JAMES   7900 BLAKE   7698 
   WARD    7521 BLAKE   7698 
   FORD    7902 JONES   7566 
   SMITH   7369 FORD    7902 
   SCOTT   7788 JONES   7566 
   ADAMS   7876 SCOTT   7788 
   MILLER  7934 CLARK   7782 
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

 SQL> SELECT ename, empno, (SELECT ename FROM EMP WHERE empno = mgr)AS MANAGER, mgr from emp order by empno;

 ENAME           EMPNO MANAGER …
Run Code Online (Sandbox Code Playgroud)

sql oracle sqlplus

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

scott帐户在SQL Plus中被锁定

当我尝试通过输入'scott'作为用户名并输入'tiger'作为密码来登录Oracle Sql plus时,它会显示"帐户被锁定".如何解锁"斯科特"帐户.SQL Plus CLI的屏幕截图如下所示.

屏幕截图如下

sqlplus oracle11g

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

为什么我会在格式化后的NUMBER列中获得#### ... Oracle?

我有两个有问题的列:FeeNUMBER类型,AdjFee也是NUMBER.后

column Fee format a5;
select Fee ID smth
from Visit;
Run Code Online (Sandbox Code Playgroud)

我明白了

Fee    ID   smth
####  123  klkl
####  654  rfjgr
Run Code Online (Sandbox Code Playgroud)

oracle format numbers sqlplus

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

SQL 文件是否有 VSCode 扩展/设置可以突出显示所选值的列?

IntelliJ 上默认有此功能,但我的雇主要求我使用 VSCode。

查看 SQL 文件非常繁琐,并且必须对列进行计数才能查看是否正在查看正确的值。

所以如果这是我的插入语句:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
Run Code Online (Sandbox Code Playgroud)

当我的光标放在此处的“4006”值上时,邮政编码列将突出显示:

VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的 Google-fu 已经让我失望了。我也尝试过几种扩展。有谁知道是否/如何可以做到这一点?

sql sqlplus visual-studio-code

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

Oracle假脱机到文件的最大列宽

我有一个这样的脚本:

SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET TERMOUT OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET WRAP OFF
SET LINESIZE 32000
SET LONG 32000
SET LONGCHUNKSIZE 32000
SET SERVEROUT ON

SPOOL C:\Export.txt

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....)))
  FROM --TABLENAME--
 WHERE --CONDITIONS--
Run Code Online (Sandbox Code Playgroud)

输出应该是一个包含内部复杂xml的行列表的文件,但是当生成的XML长度超过2000时,SQLPlus将修剪为2000并转到下一行.

有一种方法可以强制SQLPlus在同一行中写入所有数据吗?

oracle sqlplus oracle-xml-db-repository

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

Sqlplus oracle:如何在1行的bash上运行sql命令?

我可以在sqlplus中将其转换为bash中的1命令行吗?因为我想自动化它.

sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus

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

如何在运行PL/SQL程序时禁用输出中的旧值和新值选项

我是pl/sql的新手,所以这可能是一个愚蠢的问题,我创建了一个简单的PL/SQL程序:

DECLARE
        inputData VARCHAR2(1024);
BEGIN
        inputData :='&&inputData' ;
        Dbms_Output.put_line('Value entered is:' || inputData);
END;
/
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,我得到低于输出:

Enter value for inputdata: check
old   4:         inputData :='&&inputData' ;
new   4:         inputData :='check' ;
Value entered is:check

PL/SQL procedure successfully completed.
Run Code Online (Sandbox Code Playgroud)

如何在显示输出时删除旧值和新值的行.

plsql sqlplus

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

确定相关tnsnames.ora文件的位置

我安装了32位和64位Oracle 11g驱动程序.我搜索我的电脑,寻找名为"tnsnames.ora"的文件,并在以下位置找到3个:

1. C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN
2. C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN
3. C:\Windows\TNS
Run Code Online (Sandbox Code Playgroud)

tnsnames.ora文件的第三个位置的存在让我感到惊讶.

我的PC上安装了以下Oracle客户端:

"C:\Program Files (x86)\Quest Software\Toad for Oracle 11.6\Toad.exe"
"C:\Program Files\Devart\dbForge Studio Express for Oracle\dbforgeoracle.exe"
Run Code Online (Sandbox Code Playgroud)

基于每个程序的位置(Program Files(x86)与c:\ Program Files),这向我建议,32位程序Toad应该使用32位驱动程序,而dbForge应该使用64位驱动程序.

dbForge似乎使用位置#2或#3中的tnsnames.ora文件.我知道这一点,系统地重命名除了一个tns文件之外的所有文件,然后在尝试使用app创建新连接时检查从文件中读取的连接名是否可用.

但是,TOAD似乎只识别位置#3中的tnsnames.ora文件,它根本无法识别位置2中的tnsnames.ora文件!(因为它是一个32位程序,我没想到它会识别位置2中的tns文件,就是这种情况).为了清楚起见,TOAD测试总结了TOAD测试,TOAD只识别位置3中的tns文件.

其他同事在他们的机器上没有位置3的tns文件.我不知道为什么我这样做.当我运行Toad时,它会显示以下2个Home,其中32位Home是活动的.

OraClient11g_home1 (11.2.0.3)
    ORACLE_HOME:C:\app\C39293\product\11.2.0\client_1
    ORACLE_HOME_NAME:OraClient11g_home1
    ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1
    ORACLE_SID:
    NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
    SQLPATH:
    LOCAL:
    Client DLL:C:\app\C39293\product\11.2.0\client_1\oci.dll
    TNSNames.ora:
    SQLNet.ora:
    LDAP.ora:
    Login.sql:
    GLogin.sql:
    In system PATH:No
    Home is valid:No
OraClient11g_home1_32bit (11.2.0.3)
    ORACLE_HOME:c:\oracle\product\11203_32bit\CLIENT_1
    ORACLE_HOME_NAME:OraClient11g_home1_32bit
    ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1_32bit
    ORACLE_SID:
    NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
    SQLPATH:c:\oracle\product\11203_32bit\CLIENT_1\dbs
    LOCAL:
    Client DLL:c:\oracle\product\11203_32bit\CLIENT_1\bin\oci.dll
    TNSNames.ora:
    SQLNet.ora:
    LDAP.ora:
    Login.sql:
    GLogin.sql:c:\oracle\product\11203_32bit\CLIENT_1\sqlplus\admin\glogin.sql
    In system PATH:Yes
Run Code Online (Sandbox Code Playgroud)

Q1: OraClient11g_home1是我的64位家用还是我安装了两个Oracle客户端?

Q2:为什么32位TOAD不使用位置#1中的tns而不是仅使用位置#3中的tns?

问题3:如果我离开位置3的tns文件,dbForge和TOAD都可以工作,但我想知道为什么这样我就能准确地理解如何将tns信息从一台机器移动到另一台机器.

oracle toad sqlplus

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