13.7.2.9 pyqScriptCreate Procedure (Autonomous Database)
This topic describes the pyqScriptCreate
procedure in
Oracle Autonomous Database. Use the pyqScriptCreate
procedure to create a
user-defined Python function and add it to the OML4Py script
repository.
Syntax
sys.pyqScriptCreate (
V_NAME VARCHAR2 IN
V_SCRIPT CLOB IN
V_GLOBAL BOOLEAN IN DEFAULT
V_OVERWRITE BOOLEAN IN DEFAULT)
Parameter | Description |
---|---|
V_NAME | A name for the user-defined Python function in the OML4Py script repository. |
V_SCRIPT | The definition of the Python function. |
V_GLOBAL | TRUE specifies that the
user-defined Python function is public; FALSE
specifies that the user-defined Python function is private.
|
V_OVERWRITE | If the script repository already has a user-defined
Python function with the same name as V_NAME, then TRUE replaces the
content of that user-defined Python function with V_SCRIPT and FALSE does
not replace it.
|
Example 13-39 Using the pyqScriptCreate Procedure
This example creates a private user-defined Python function named
pyqFun2
in the OML4Py script
repository.
BEGIN
sys.pyqScriptCreate('pyqFun2',
'def return_frame():
import numpy as np
import pickle
z = np.array([y for y in zip([str(x)+"demo" for x in range(10)],
[float(x)/10 for x in range(10)],
[x for x in range(10)],
[bool(x%2) for x in range(10)],
[pickle.dumps(x) for x in range(10)],
["test"+str(x**2) for x in range(10)])],
dtype=[("a", "U10"), ("b", "f8"), ("c", "i4"), ("d", "?"),
("e", "S20"), ("f", "O")])
return z');
END;
/
This example creates a global user-defined Python function named
pyqFun2
in the script repository and overwrites any existing
user-defined Python function of the same name.
BEGIN
sys.pyqScriptCreate('pyqFun2',
'def return_frame():
import numpy as np
import pickle
z = np.array([y for y in zip([str(x)+"demo" for x in range(10)],
[float(x)/10 for x in range(10)],
[x for x in range(10)],
[bool(x%2) for x in range(10)],
[pickle.dumps(x) for x in range(10)],
["test"+str(x**2) for x in range(10)])],
dtype=[("a", "U10"), ("b", "f8"), ("c", "i4"), ("d", "?"),
("e", "S20"), ("f", "O")])
return z',
TRUE, -- Make the user-defined Python function global.
TRUE); -- Overwrite any global user-defined Python function
-- with the same name.
END;
/
This example creates a private user-defined Python function named
create_iris_table
in the script repository.
BEGIN
sys.pyqScriptCreate('create_iris_table',
'def create_iris_table():
from sklearn.datasets import load_iris
import pandas as pd
iris = load_iris()
x = pd.DataFrame(iris.data, columns = ["Sepal_Length",\
"Sepal_Width","Petal_Length","Petal_Width"])
y = pd.DataFrame(list(map(lambda x: {0:"setosa", 1: "versicolor",\
2: "virginica"}[x], iris.target)),\
columns = ["Species"])
return pd.concat([y, x], axis=1)');
END;
/
Display the user-defined Python functions owned by the current user.
SELECT * from USER_PYQ_SCRIPTS;
NAME SCRIPT
----------------- ---------------------------------------------------------------------
create_iris_table def create_iris_table(): from sklearn.datasets import load_iris ...
pyqFun2 def return_frame(): import numpy as np import pickle ...
Display the user-defined Python functions available to the current user.
SELECT * from ALL_PYQ_SCRIPTS;
OWNER NAME SCRIPT
-------- ----------------- --------------------------------------------------------------------
OML_USER create_iris_table "def create_iris_table(): from sklearn.datasets import load_iris ...
OML_USER pyqFun2 "def return_frame(): import numpy as np import pickle ...
PYQSYS pyqFun2 "def return_frame(): import numpy as np import pickle ...