我有下表:
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中查询?
谢谢!
您好我试图在我的一个表中显示约束但由于某种原因我收到消息没有选择行.下面是我创建的表格.
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.因此,当我尝试删除表时,我得到一条错误消息,这是我希望的.
这就是我想要输出的样子:
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) 当我尝试通过输入'scott'作为用户名并输入'tiger'作为密码来登录Oracle Sql plus时,它会显示"帐户被锁定".如何解锁"斯科特"帐户.SQL Plus CLI的屏幕截图如下所示.

我有两个有问题的列: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) 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 已经让我失望了。我也尝试过几种扩展。有谁知道是否/如何可以做到这一点?
我有一个这样的脚本:
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在同一行中写入所有数据吗?
我可以在sqlplus中将其转换为bash中的1命令行吗?因为我想自动化它.
sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
Run Code Online (Sandbox Code Playgroud) 我是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)
如何在显示输出时删除旧值和新值的行.
我安装了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信息从一台机器移动到另一台机器.