我正在使用Oracle Sql Developer
我有一个巨大的脚本,可以创建表,索引,主键约束等.
我的DB名称是:dbo_other
我以sysdba身份登录了这个dbo_other.
如果我运行我的脚本,则表格不会出现在"桌子"下的左侧面板上
但是,如果我通过添加'dbo_other'来附加脚本.在每个表名前面,表格会显示出来.
这非常繁琐且耗时.
有办法避免这种情况吗?为什么他们不会在没有添加dbo_other的情况下出现在dbo_other中.在每个表名前?当我在右上角运行查询时,下拉列表中选择了dbo_other !!
我甚至可以从创建的表中做一个select*(但是在左侧边栏中看不到它)此外,我可以在pl/sql developer中看到该表.
为什么oracle sql开发人员要我用dbo_other创建它.??
另外,有没有办法避免为每个表添加它?也许可以在脚本之上完成某些事情,以便它对随后的所有内容生效?
我有一个名为logger(message)的存储过程,其中message的类型为varchar2.
当我执行时
exec logger('hello');
Run Code Online (Sandbox Code Playgroud)
它表示匿名块已完成,此过程的作用只是在另一个表中插入记录.
但是,当我用它作为脚本的一部分说:
Begin
select count(*) into countCol from USER_TAB_COLUMNS where TABLE_NAME = 'EVAPP_INTERFACE_APPENTITY' and COLUMN_NAME = 'ORIGPTI_NUM' and DATA_SCALE is null;
IF (countCol <> 0) then
execute immediate 'alter table EVAPP_INTERFACE_APPENTITY add ORIGPTI_NUM_TMP NUMBER(14,2)' ;
execute immediate 'update EVAPP_INTERFACE_APPENTITY set ORIGPTI_NUM_TMP = ORIGPTI_NUM' ;
execute immediate 'alter table EVAPP_INTERFACE_APPENTITY drop column ORIGPTI_NUM' ;
execute immediate 'alter table EVAPP_INTERFACE_APPENTITY rename column ORIGPTI_NUM_TMP to ORIGPTI_NUM' ;
DBMS_OUTPUT.put_line('This column EVAPP_INTERFACE_APPENTITY.ORIGPTI_NUM has been modified to the required precision');
END IF; …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个查找多个不同内容的SQL查询,我认为类似命令是实现此目的的最佳方法
查询中的行是:
where *field* like 'AB%' 它列出了表开始AB的所有实例....
当我尝试添加多个实例虽然我收到错误消息,我想做类似以下的事情:
where *field* like ('AB%','CD%','EF%')
Run Code Online (Sandbox Code Playgroud)
所以我得到了以我提供的文本列表开头的特定条目的字段
有人可以帮我这个吗?
我发现有几篇文章描述了我遇到的同样问题,但没有找到解决方案.
由于sqldeveloper的几个版本(3.1最新版本,今天升级了4个)我遇到了鼠标映射问题.我尝试重新启动,重新安装sqldeveloper,并在重新安装操作系统后,没有任何改变.JDK 1.7,但在遇到同样的问题时也使用了1.6.
当我想从菜单栏/任何下拉菜单中选择一些内容时,我必须将鼠标指向下方几厘米以标记菜单项.
我有一个linux mint系统.我会非常感谢任何帮助.
谢谢Nico
我正在尝试执行以下过程.我所拥有的是,在wo_list的最开始有一个sql,我需要迭代它并将此wo_list中的pyid值传递给另一个我需要创建另一个游标的查询.所以我打开一个for循环,启动我的wo_list游标循环,现在在这个循环中我需要通过传递wo_list中的一个值来从另一个查询创建另一个游标.
CREATE OR REPLACE
PROCEDURE FIX_DIMS_DOC_PROD_DATA_1
AS
tempivaultprod VARCHAR(8);
tempivaultdoc VARCHAR(8);
CURSOR wo_list
IS
SELECT A.Pyid,
A.Pxcreatedatetime,
A.Pxcreateoperator,
A.Pxcreateopname,
A.Packageid,
E.Doc_Desc,
A.Concat_Prod_Desc,
A.Primary_Ecid,
A.Primary_Cust_Name,
A.Isnamdocument,
A.PYSTATUSWORK,
F.Req_No,
F.Req_Src,
A.concat_prod_id,
A.documenttypeid
FROM DIMS_DOC_MASTER A,
Dims_Doc_Map_Product B,
Dims_Doc_Type E ,
Dims_Doc_Asctd_Req_Dtl F
WHERE B.Dims_Doc_Id = A.PYID
AND NOT EXISTS
(SELECT 1
FROM Dims_Prod_Type_Doc_Type C
WHERE C.DIMS_PROD_ID = B.Dimsdocprodid
AND C.Doc_Type_Id = A.Documenttypeid
)
AND E.Doc_Id = A.Documenttypeid
AND A.PYID = F.DIMS_DOC_ID (+);
BEGIN
FOR DIMS_DOC_REC IN wo_list
LOOP
BEGIN
CURSOR wo_list1
IS …Run Code Online (Sandbox Code Playgroud) 考虑下表:
EmpId EmpType ExpUniId
1 A 234
1 B 453
2 A 454
Run Code Online (Sandbox Code Playgroud)
我想编写一个SQL查询,以便获得以下数据
EmpId EmpType ExpUniId Count
1 A 234 2
1 B 453 2
2 A 454 1
Run Code Online (Sandbox Code Playgroud)
计数表示与每个Emp Id对应的行数
我正在使用Oracle Sql.
谢谢
我是pl/slq的新手,我的问题是:是否可以在sql plus或sql developer中"编译"脚本并将文件提供给其他人,以便允许其他人执行代码但不允许他们阅读代码?
我无法创建视图 - 我的权限不足.工作流 - >创建角色 - >将创建视图授予角色 - >创建用户 - >向用户添加角色 - >尝试创建视图,我得到错误.任何帮助将不胜感激
创造了一个角色
CREATE ROLE enrolment;
Run Code Online (Sandbox Code Playgroud)
授予以下角色特权 - 基础表hr.students
GRANT insert, select, update
ON hr.students
TO enrolment;
Run Code Online (Sandbox Code Playgroud)
还授予该角色的create view特权
GRANT create view
TO enrolment;
Run Code Online (Sandbox Code Playgroud)
创建了以下用户
CREATE USER enrol1
IDENTIFIED BY pw4321;
Run Code Online (Sandbox Code Playgroud)
将该角色授予该帐户
GRANT enrolment
TO enrol1;
Run Code Online (Sandbox Code Playgroud)
当我尝试在基表hr.students上创建以下视图时,我被告知我没有足够的权限.我可以在基表上运行select语句.
CREATE OR REPLACE VIEW vu_student_name
AS SELECT student_id, lastname
FROM hr.students;
Run Code Online (Sandbox Code Playgroud) 我在SQL Developer中具有以下脚本,但是在SQL Plus命令行中运行它似乎返回无效的日期。
set serveroutput on;
DECLARE
yesterday varchar2(30);
tz_yesterday varchar2(30);
BEGIN
select sysdate - 1 into yesterday from dual;
select cast(yesterday as timestamp WITH LOCAL TIME ZONE) into tz_yesterday from dual;
dbms_output.put_line(yesterday);
dbms_output.put_line(tz_yesterday);
END;
Run Code Online (Sandbox Code Playgroud)
这是SQL Developer提供的输出,它是正确的:
10-OCT-18
10-OCT-18 12.00.00.000000 AM
Run Code Online (Sandbox Code Playgroud)
这就是我在SQL Plus中得到的
SQL> l
1 DECLARE
2 g_vendor_id NUMBER;
3 g_product_id NUMBER;
4 yesterday varchar2(30);
5 tz_yesterday varchar2(30);
6 g_user_id NUMBER;
7 BEGIN
8 select sysdate - 1 into yesterday from dual;
9 select cast(yesterday as timestamp WITH LOCAL …Run Code Online (Sandbox Code Playgroud) 我试图使用SQLPLUS从我的plsql块执行该过程,遗憾的是,我无法在执行SQL脚本之后看到来自过程的"dbms_output.put_line"的输出,尽管输出在假脱机文件中可见,我想在执行完成后在屏幕上显示输出.
现在,虽然当我执行"SET SERVEROUTPUT ON"时,我得到提示但没有输出 在SQL开发人员中它显示输出,一旦执行完成,我该怎么做才能看到sqlplus中的输出.
在SQLPLUS中输出
SQL Developer中的输出
表结构和数据
create table cust_temp_temp
(name varchar2(20) , id varchar2(20));
insert into cust_temp_temp
select 'hasu t', '100' from dual
union all
select 'hasu r', '100' from dual
union all
select 'hasu e', '100' from dual
union all
select 'hasu w', '100' from dual
union all
select 'hasu q', '100' from dual;
Run Code Online (Sandbox Code Playgroud)
包装结构:
CREATE OR REPLACE PACKAGE CUSTOM_PKG
AS
PROCEDURE get_transaction_details(
id_ cust_temp_temp.id%TYPE);
END CUSTOM_PKG;
/
Run Code Online (Sandbox Code Playgroud)
包装体:
CREATE OR REPLACE PACKAGE BODY CUSTOM_PKG
AS …Run Code Online (Sandbox Code Playgroud)