小编Sri*_*niV的帖子

在Oracle SQL Developer SQL工作表窗口中打印文本

我正在使用Oracle SQL(在SQLDeveloper中,使用SQL Worksheet).我想在我的选择之前打印一个声明,例如

PRINT 'Querying Table1';
SELECT * from Table1;
Run Code Online (Sandbox Code Playgroud)

我可以用什么来打印/显示文本输出?这不是打印,因为这给了我错误:绑定变量Table1未声明.DBMS_OUTPUT.PUT_LINE是一个未知命令.(显然,我是一个没有经验的SQLDeveloper和Oracle用户.必须有一些Print的同义词,但我很难在不知道它的情况下找到它的帮助.)

printing oracle oracle-sqldeveloper

85
推荐指数
6
解决办法
33万
查看次数

Oracle联接 - 传统语法VS ANSI语法之间的比较

前言

最近,我看到有太多的极客评论Oracle的问题,说"不要使用(+)运算符,而是使用JOIN语法".

我确实看到两者都运作良好.但是使用它们之间的真正区别是什么让你觉得使用它们?我希望得到答案,更多来自经验.

 1. Is there anything to do with limitations in application, performance, 
    etc. while using them?

 2. What would you suggest for me?
Run Code Online (Sandbox Code Playgroud)

我确实阅读了有关Oracle文档的内容,但还不足以让我理解或对综合信息感到满意.

注意:如果要使用关键字而不是(+),我打算迁移200多个包和程序

  3. Also is there any freeware tools to do the rewrite?
Run Code Online (Sandbox Code Playgroud)

发布样本

???????????????????????????????????????????????????????????????????????????????????
? INNER JOIN - CONVENTIONAL         ? INNER JOIN - ANSI SYNTAX                    ?
???????????????????????????????????????????????????????????????????????????????????
? SELECT                            ? SELECT                                      ?
?      emp.deptno                   ?       ename,                                ?
? FROM                              ?       dname,                                ?
?      emp,                         ?       emp.deptno,                           ?
?      dept                         ? …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle10g oracle11g oracle12c

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

Convert.ToDecimal(string)和Decimal.Parse(string)之间的区别

C#Convert.ToDecimal(string)Decimal.Parse(string)?之间有什么区别?

在什么情况下你会使用一个而不是另一个?

它对性能有何影响?

在两者之间进行选择时,我应该考虑哪些其他因素?

.net c#

27
推荐指数
3
解决办法
5万
查看次数

PLS-00201 - 必须声明标识符

我执行了一个创建下表的PL/SQL脚本

TABLE_NAME VARCHAR2(30) := 'B2BOWNER.SSC_Page_Map';
Run Code Online (Sandbox Code Playgroud)

我使用参数为这个表创建了一个insert函数

CREATE OR REPLACE FUNCTION F_SSC_Page_Map_Insert(
         p_page_id   IN B2BOWNER.SSC_Page_Map.Page_ID_NBR%TYPE, 
         p_page_type IN B2BOWNER.SSC_Page_Map.Page_Type%TYPE, 
         p_page_dcpn IN B2BOWNER.SSC_Page_Map.Page_Dcpn%TYPE)
Run Code Online (Sandbox Code Playgroud)

我被通知我必须B2BOWNER.SSC_Page_Map在它出现作为我的函数的参数之前声明.为什么我收到此错误?

编辑:实际错误

Warning: compiled but with compilation errors
Errors for FUNCTION F_SSC_PAGE_MAP_INSERT

LINE/COL ERROR                                                            
-------- -----------------------------------------------------------------
2/48     PLS-00201: identifier 'SSC_PAGE_MAP.PAGE_ID_NBR' must be declared
0/0      PL/SQL: Compilation unit analysis terminated 
Run Code Online (Sandbox Code Playgroud)

编辑:完整的PL/SQL函数

RETURN INTEGER
IS
   TABLE_DOES_NOT_EXIST exception;  
   PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST, -942); -- ORA-00942

BEGIN

   INSERT INTO 
       B2BOWNER.SSC_Page_Map VALUES(
           p_page_id, 
           p_page_type, 
           p_page_dcpn);

   RETURN 0;

   EXCEPTION
       WHEN TABLE_DOES_NOT_EXIST THEN
           RETURN -1; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql function

24
推荐指数
2
解决办法
20万
查看次数

为什么在FOR循环中通过表达式连接,只执行一次?

我刚刚发现了我认为在Oracle中PLSQL vs SQL中有些出乎意料的行为.

如果我在SQLDeveloper上运行此查询,我得到5个结果:

select level lvl from dual connect by level <=5;
Run Code Online (Sandbox Code Playgroud)

但是,如果我在SQLDeveloper中运行此语句:

declare
  w_counter number :=0;
begin
  for REC in (select level lvl from dual connect by level <=5)
  loop
    w_counter := w_counter+1;
  end loop;
  dbms_output.put_line('W_COUNTER: '|| w_counter);
end;
Run Code Online (Sandbox Code Playgroud)

变量w_counter以值1结束(很奇怪)

但最奇怪的部分是,如果我将查询封装在子查询中...类似于:

declare
  w_counter number :=0;
begin
  for REC in (select * from (select level lvl from dual connect by level <=5))
  loop
    w_counter := w_counter+1;
  end loop;
  dbms_output.put_line('W_COUNTER: '|| w_counter);
end;
Run Code Online (Sandbox Code Playgroud)

w_counter变量完成与价值5 ...

你有什么要对此说的? …

sql oracle plsql oracle9i

21
推荐指数
1
解决办法
736
查看次数

解决方法是为Chrome设置独立代理设置

我在谷歌和这个论坛上进行了搜索.但我看不到任何有用的信息.

现在,我使用IE for Work VPN和Chrome进行个人活动,并且需要使用不同的代理设置.

Google Chrome没有自己的网络设置.它使用操作系统提供设置,因此它们将始终与IE相同.

所以问题是 Whether we can have any possible workaround to overcome this and have a standalone proxies for both the browsers, rather than a shared one?

proxy internet-explorer google-chrome

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

Oracle顺序操作

我有一个数据表详细说明父表的行的动作序列,其中列ID是该外键.列SEQ是这些动作发生的顺序,ACTION是发生的动作.

ID          SEQ ACTION
12345.00    2   SUSPEND
12345.00    3   CLEAR
12345.00    4   SUSPEND
12345.00    6   CLEAR
12345.00    7   SUSPEND
12345.00    8   RESUME
12345.00    9   SUSPEND
12345.00    10  RESUME
12345.00    11  CLEAR
Run Code Online (Sandbox Code Playgroud)

我试图以这样的方式呈现数据,以便我可以识别未清除的SUSPEND和RESUME操作.在这种情况下,我的结果将如下所示;

12345.00    7   SUSPEND    8    RESUME
12345.00    9   SUSPEND
Run Code Online (Sandbox Code Playgroud)

情况就是这样;

CLEAR行动3删除了SUSPEND行动2.

CLEAR行动6删除了SUSPEND行动4.

CLEAR动作9删除了RESUME动作8.

ACTION列可以在序列中包含其他操作,因此为了清楚起见,我已删除了这些操作.

如果CLEAR将继续执行操作,则清除该操作.

对不起,如果这令人困惑.我无法改变架构!

我试图简化这个问题;

ID          SEQ ACTION
12345.00    2   SUSPEND
12345.00    3   RESUME
12345.00    4   CLEAR
12345.00    5   RESUME
12345.00    6   SUSPEND
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的;

12345.00    2   SUSPEND   5 RESUME
12345.00    6   SUSPEND
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但我无法想象如何停止包含3号的RESUME.

oracle plsql

8
推荐指数
2
解决办法
182
查看次数

java中的MVVM模式

我想mvvm在java上创建一个项目.但我找不到一个示例项目.有几个Android示例,但我不想制作Android项目.那么如何用mvvm模式创建项目呢?

我正在尝试创建一个桌面应用程序,其中有组合框和数据网格.应用程序必须连接到数据库(即MySQL),数据网格必须填充数据.组合框上的任何更改都必须更改网格的内容.也许我想CRUD在以后的步骤中进行操作.

所以任何建议......

java design-patterns mvvm simple-mvvm

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

动态选择分区

我有一个有几百个分区的表,我一般对最新的35个感兴趣.

因此,我正在尝试创建可以动态访问这些视图的视图.即总是使用最新的,以防万一.

查询:

  select PARTITION_NAME,
  PARTITION_POSITION,
  NUM_ROWS,
  AVG_ROW_LEN
  from all_tab_partitions
    where
    table_name = 'MY_TABLE'
    AND PARTITION_NAME <> 'P_LAST'
    AND PARTITION_POSITION < (SELECT MAX(PARTITION_POSITION) 
    FROM all_tab_partitions) - 35
    order by 2 DESC
    ;
Run Code Online (Sandbox Code Playgroud)

似乎返回我感兴趣的分区名称,但是,我无法使用它的结果来选择分区.例如:

CREATE OR REPLACE VIEW MY_VIIEW AS
WITH t AS ( [Above query] )
SELECT * FROM 
MY_TABLE PARTITION (SELECT /*+ FIRST_ROWS(1) */ PARTITION_NAME 
                    from t);
Run Code Online (Sandbox Code Playgroud)

(不是实际视图,只是一个例子)

那我该怎么做?如何创建一个始终是最新分区(execpt为"MAX")的视图?

我正在使用Oracle 10g

谢谢

oracle oracle10g

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

ORA-01219:数据库未打开:仅在固定表/视图上允许查询

我正在使用oracle 11g和SQL开发人员工具.当我试图从数据库中检索行时,我收到错误消息: -

ORA-01219: database not open: queries allowed on fixed tables/views only)
Run Code Online (Sandbox Code Playgroud)

我找了sgadef.dbf文件,它在主目录中丢失了..有人可以帮助我让它工作.

sql database oracle database-administration

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