Oracle 存储过程执行问题,请教手指

发布于 科技 2024-08-03
9个回答
  1. 匿名用户2024-01-31

    楼上错误的 lz 是输出 p2 的值 这个变化是什么意思?

    p2:=(select count(*)from tbs where country='p1');将这句话改为:

    select count(*)into p2 from tbs where country='p1';

  2. 匿名用户2024-01-30

    场景 1:

    1)传入前将单元拼接成串,格式如下:'单元1、单元2、单元3',即'43,4301'以使用逗号拆分数据。

    2)查询条件修改如下:

    其中 instr(传入字符串,单位列)>0;

    3)注意单位列不能为空,否则需要添加nvl(unit,'@字符可以自拟;

    解决方案二:在传递之前,将选中的单元放入 PL SQL 表中,然后将 PL SQL 表作为参数传递。

    如果检查次数不是很大,并且不超过 varchar2 (4000),则可以实现选项 1。 注意最好将参数限制在substrb(单位字符串,1,你想要的限制),这个限制可以基于性能,一个页面上的复选框不会太多,所以不用担心字符串的大小。

  3. 匿名用户2024-01-29

    单独做一个维度表,每次执行程序的时候都清空它,生成结果表的时候,再从结果表里捞出数据,生成这个维度表吧? 语句可以在其中使用,但速度会慢得多。

  4. 匿名用户2024-01-28

    1.确定正在运行的进程的名称。

    select name,locks,pins

    from v$db_object_cache

    where locks > 0 and pins > 0 and type='procedure';

    name locks pins

    p_etl_crm_desk 1 1

    2.查询 v$open 游标视图。

    select sid,sql_text

    from v$open_cursor

    where upper(sql_text) like '%p_etl_crm_desk%'

    sid sql_text

    143 begin --call the procedure p_etl_crm_desk(v_dtdate => :

    3.也可以用 v$access 来确定。

    select * from v$access where object='p_etl_crm_desk';

    sid owner object type

    143 kdcc p_etl_crm_desk procedure

    4.或 DBA DDL 锁

    select session_id sid, owner, name, type,mode_held held, mode_requested request

    from dba_ddl_locks

    where name = 'p_etl_crm_desk';

    sid owner name type held request

    143 kdcc p_etl_crm_desk table/procedure/type null none

  5. 匿名用户2024-01-27

    定义:存储过程是一组旨在完成特定功能的 SQL 语句。

    set,它被编译并存储在数据库中。 用户通过指定存储过程的名称并提供参数来执行此操作。

    如果存储过程有参数)来执行它。存储过程是数据库的重要组成部分。

    对象,任何设计良好的数据库应用程序都应使用存储过程。

    存储过程是通过流控制和 SQL 语句编写进行编译和优化的过程。

    它存储在数据库服务器中,在使用时可以由应用程序调用。 在 Oracle 中,可以将多个相关进程组合在一起以形成一个包。

    优点:存储过程只在创建时进行编译,以后执行存储过程时不需要每次重新编译,而一般的SQL语句每次执行时都会进行编译,因此使用存储过程可以提高数据库的执行速度。

    2.在对数据库执行复杂操作(如更新、插入、查询或删除多个表)时,可以将此复杂操作与存储过程与数据库提供的事务处理一起封装。

    3.存储过程可以重用,从而减少数据库开发人员的工作量。

    4.安全性高,可以设置只有用户才有权使用指定的存储过程。

    proc = "");

    设置传入参数。

    注册传出参数。

    执行过程。 获取结果。

  6. 匿名用户2024-01-26

    存储过程是命名块,其本质是一系列 SQL 语句,基于传入的参数,可以完成比单个 SQL 语句更复杂的功能。 例如,如果要在表中插入大量数据(50,000),可以编写一个存储过程直接调用它,这样就方便多了,并且可以保存存储过程。

  7. 匿名用户2024-01-25

    存储过程是为了你为了链接而保留东西。

  8. 匿名用户2024-01-24

    直接在存储过程中将 b(c,d) 写在新行上; 是的,当 b(c,d) 未在存储过程中单独执行时调用它;

  9. 匿名用户2024-01-23

    如果存储过程 a (参数) 已存在;

    然后,在存储过程 B 中,您可以直接传递:

    值: = a(参数); 拨打电话。

    注意:必须在初始化期间定义值,例如:values varchar(30); 并且此类型必须与存储过程返回的参数的类型一致。

相关回答
11个回答2024-08-03

select ..你确定,into 语句可能没有发现数据错误。 >>>More

13个回答2024-08-03

beginselect count(*)into v_count from bpa_df_role where drename=record_drename and ddnid=ddnid_new; >>>More

4个回答2024-08-03

定义变量。 dim conn

实例化对象。 >>>More

12个回答2024-08-03

获得 32 位 UUID 存储功能:创建或替换函数 get uuid return varchar 为 guid varchar (32); begin guid := lower(rawtohex(sys_guid())

3个回答2024-08-03

Crate Proc TabaInsert(title varchar2(20),prices number)as--插入表 A >>>More