我希望通过脚本使用SQL*Plus创建一些视图,但是如果开发人员在中间声明中放置了一个空行,则似乎遇到了问题.以下语句在TOAD/PL/SQL开发人员等中工作正常,但在SQL*Plus中失败.(这通常是脚本化的,但手动输入会产生完全相同的错误)
谁能告诉我为什么/如何阻止它?
CREATE VIEW bob
AS
SELECT *
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
使用SQL*Plus输出
SQL> CREATE VIEW bob
2 AS
3 SELECT *
4
SQL> FROM DUAL;
SP2-0042: unknown command "FROM DUAL" - rest of line ignored.
Run Code Online (Sandbox Code Playgroud) 我正在学习数据库索引,我正在努力了解使用它们的有效性.
我正在使用sql +.
我如何查看执行计划,我在哪里可以找到告诉我我的索引是否被使用的信息?
我在Windows服务器上运行了Oracle 11,并且我登录到尝试使用SQL Plus的同一服务器上.当我尝试连接时,即使TNSPING和其他各种诊断看起来没问题,我也会得到ORA-12154.
谁有人建议为什么?下面的大量详细信息.
如果我像这样使用EZCONNECT,我可以使用sqlplus ..
sqlplus EST/EST@192.168.10.15/ORCL
Run Code Online (Sandbox Code Playgroud)
...但是如果我尝试使用这样的TNSNAMES进行连接......
sqlplus EST/EST@ORCL
Run Code Online (Sandbox Code Playgroud)
......我明白了......
ORA-12154: TNS:could not resolve the connect identifier specified
Run Code Online (Sandbox Code Playgroud)
TNSPING工作正常
C:\Documents and Settings\user1>tnsping ORCL
TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 12-NOV-2013 12:41:14
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
E:\app\Administrator\product\11.2.0\dbhome_2\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.15)(PORT = 1521)) (CONNECT_DATA = (SERVER = …Run Code Online (Sandbox Code Playgroud) 我想尝试做以下事情,
select * into temp from (select * from student);
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误,
ERROR at line 1:
ORA-00905: missing keyword
Run Code Online (Sandbox Code Playgroud)
在我的实例中,子查询(select*from student)更复杂.
我想在存储过程中使用它,所以我不想创建表本身.我只是想通过使用临时表使我的代码更具可读性.
我想在oracle的sqlplus中连接用户sys但是在我连接之后,我输入如下:
sqlplus sys as sysdba
password:123456
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Error: ORA-01030:insufficient privilege warning:You are no longer to connect oracle.
有没有人帮我解决我的问题?
如何EXECUTE从PL/SQL中获取动态选择结果Oracle sqlplus?
我正在编写一个简单的sqlplus脚本来收集NUMBER给定表的所有列的总和:
SET SERVEROUTPUT ON
DECLARE
CURSOR column_cur IS
SELECT column_name FROM ALL_TAB_COLS
WHERE owner = '&scheme_name' AND table_name = '&table_name'
AND data_type = 'NUMBER';
sql_query VARCHAR2(32767);
BEGIN
sql_query := 'select ';
FOR column_rec IN column_cur LOOP
sql_query := sql_query || 'SUM(' || column_rec.column_name ||
') "SUM(' || column_rec.column_name || ')", ';
END LOOP;
sql_query := substr(sql_query, 0, length(sql_query)-2) || -- remove trailing ', '
' from &scheme_name' || '.&table_name';
EXECUTE IMMEDIATE sql_query; …Run Code Online (Sandbox Code Playgroud) 有没有办法使用SQL*Plus获取特定表上的所有索引的列表?
我创建了一张桌子
CREATE TABLE temp(
id NUMBER PRIMARY KEY,
name VARCHAR2(20));
Run Code Online (Sandbox Code Playgroud)
应该在主键(id)上创建隐式索引.我怎么能看到那个索引?
SELECT * FROM all_indexes WHERE table_name = 'temp';
Run Code Online (Sandbox Code Playgroud)
给
没有选择任何行
有没有办法在没有用户输入的情况下在sqlplus脚本中设置参数的默认值?
例如,我有一个SQL脚本sessions.sql:
SET VERIFY OFF
SET TERMOUT OFF
DEFINE uname = '&1'
COLUMN search_uname new_value search_uname
SELECT CASE WHEN '&uname' = '' THEN '%' ELSE UPPER('&uname') END AS search_uname
FROM dual;
SET TERMOUT ON
SELECT sid, serial, username FROM v$session WHERE username LIKE '&search_uname';
我想从sqlplus中调用它,如下所示:
SQL> @sessions
Enter value for 1:
SID SERIAL# USERNAME
---------- ---------- ------------------------------
56 20577 CONTEXT
.....
236 rows selected.
SQL> @sessions ""
SID SERIAL# USERNAME
---------- ---------- ------------------------------
56 20577 CONTEXT
.....
236 rows selected. … 我想在我的Mac上安装SqlPlus客户端,它是64位的.首先,我安装了sqlplus for 64-bit,但是我有错误: "Segmentation fault:11" 然后我安装了sqlplus for 32-bit,但是仍然有问题,它说: ../ libsqlplus.dylib:找不到合适的图像. ./libsqlplus.dylib:mach-o,但架构错误
我已经使用了很多教程,但仍然没有解决这个问题.
请建议解决此问题的解决方案?给出命令时__CODE__发生的错误是
__CODE__..
sqlplus ×10
oracle ×9
plsql ×2
32bit-64bit ×1
indexing ×1
installation ×1
linux ×1
macos ×1
ora-12514 ×1
oracle11g ×1
oracleclient ×1
sql ×1