如何在PL / SQL中实现堆栈?

时间:2017-11-30 16:39:25

标签: plsql oracle11g

在Python中它看起来像这样:

class Stack:
     def __init__(self):
         self.items = []

     def isEmpty(self):
         return self.items == []

     def push(self, item):
         self.items.append(item)

     def pop(self):
         return self.items.pop()

     def peek(self):
         return self.items[len(self.items)-1]

     def size(self):
         return len(self.items)

我使用哪种数据结构以及如何在Oracle PL / SQL中实现堆栈?

1 个答案:

答案 0 :(得分:1)

您可以使用OBJECT类型来实现面向对象的事物。

与其他编程语言中的class类似,您可以在PL / SQL中使用OBJECT来封装数据。

例如堆栈定义:(从ORACLE文档链接中解除....在下面发布。您可以在该链接中找到以下声明的定义。)

CREATE TYPE Stack AS OBJECT ( 
   max_size INTEGER, 
   top      INTEGER,
   position IntArray,
   MEMBER PROCEDURE initialize,
   MEMBER FUNCTION full RETURN BOOLEAN,
   MEMBER FUNCTION empty RETURN BOOLEAN,
   MEMBER PROCEDURE push (n IN INTEGER),
   MEMBER PROCEDURE pop (n OUT INTEGER)
);

https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/13_elems32.htm