草庐IT

Python-Oracle 传入 Cursor Out 参数

我正在尝试在python和oracle数据库之间调用存储过程。我遇到的问题是传递游标输出参数。Oracle存储过程本质上是:createorreplaceproceduresp_procedure(cidint,rep_datedate,retoutsys_refcursor)isbeginopenretforselect...end;调用数据库的python代码是:importcx_Oraclefromdatetimeimportdateconnstr='user/pass@127.0.0.1:2521/XE'conn=cx_Oracle.connect(connstr)curs=c

python - cx_Oracle 和输出变量

我正尝试在Oracle10数据库中再次执行此操作:cursor=connection.cursor()lOutput=cursor.var(cx_Oracle.STRING)cursor.execute("""BEGIN%(out)s:='N';END;""",{'out':lOutput})printlOutput.value但是我得到了DatabaseError:ORA-01036:illegalvariablename/number是否可以通过这种方式在cx_Oracle中定义PL/SQLblock? 最佳答案 是的,您可以执

python - 如何在 psycopg2 连接池中使用 "INSERT"?

我使用psycopg2在Python上连接到PostgreSQL,我想使用连接池。当我执行INSERT查询时,我不知道我应该做什么而不是commit()和rollback()。db=pool.SimpleConnectionPool(1,10,host=conf_hostname,database=conf_dbname,user=conf_dbuser,password=conf_dbpass,port=conf_dbport)#GetCursor@contextmanagerdefget_cursor():con=db.getconn()try:yieldcon.cursor()f

python - 为什么 'insert' 函数不使用 MySQLdb 添加行?

我正在尝试弄清楚如何在Python中使用MySQLdb库(我对他们两个都是新手)。我遵循代码here,具体来说:cursor=conn.cursor()cursor.execute("DROPTABLEIFEXISTSanimal")cursor.execute("""CREATETABLEanimal(nameCHAR(40),categoryCHAR(40))""")cursor.execute("""INSERTINTOanimal(name,category)VALUES('snake','reptile'),('frog','amphibian'),('tuna','fish

python - 如何在SQL中获取最后创建的ID

我创建了一个名为participant的表,由participant_ID(它是主键并且是身份[具有自动值])和session_ID(它是一个外键)组成。当我创建一个新参与者时,我想存储它的participant_ID。我有以下代码,但我收到以下消息错误:'Syntaxproblemnearreturning'connection=pyodbc.connect('Driver={SQLServerNativeClient11.0};Serve=:xxx;Database=xxx;Uid=xxx;Pwd=xxx')cur=connection.cursor()pID=cur.execut

Python psycopg2 游标

来自psycopg2文档:Whenadatabasequeryisexecuted,thePsycopgcursorusuallyfetchesalltherecordsreturnedbythebackend,transferringthemtotheclientprocess.Ifthequeryreturnedanhugeamountofdata,aproportionallylargeamountofmemorywillbeallocatedbytheclient.Ifthedatasetistoolargetobepracticallyhandledontheclientsi

python - Flask 应用程序 GET 返回相同的东西两次

我目前有两种方法可以同时调用(通过Java中的HTTP)出于某种原因,有一个实例getAcc()两次返回相同的帐户信息?我不太明白这是为什么。我认为对get_account的第二次调用可能发生在调用toggleUse()之前(因此IN_USE变量尚未设置为1)。有谁知道如何解决这一问题?我在网上做了一些阅读,我相信术语是序列化。我看到这主要是关于数据库的,但几乎没有看到关于如何“锁定”该方法的引用。我可以创建一个锁并执行“withlock:”,但我听说这不是可行的方法。@app.route('/getAcc')defget_account():try:cursor.execute("S

python - 我可以在 Python MySQLdb 中设置用户定义的变量吗?

所以我的问题是,我有一个使用Mysql用户定义变量的查询,例如:@x:=0SELECT@X:=@X+1fromsome_table此代码返回1-1000的列。但是,如果我通过Python中的mySQLdb发送该查询,则该查询不起作用。connection=MySQLdb.Connect(host='xxx',user='xxx',passwd='xxx',db='xxx')cursor=connection.cursorcursor.execute("""SET@X:=0;SELECT@X:=@X+1FROMsome_table""")rows=cursor.fetchall()pri

python - MySQLdb 正在缓存 SELECT 结果?

我正在循环运行SELECT查询。偶尔,数据库表会更新(由另一个程序)。第一个SELECT检索正确的数据,但循环中的进一步调用返回第一个值。如何检索最新数据?到目前为止,我发现的唯一解决方法是在每次迭代时重新连接到数据库!在我的示例中,取消注释#1#和#2#。仅取消注释#2#是不够的(即重新创建游标),结果仍被缓存。这是一个给出错误的工作示例。importMySQLdbfromtimeimportsleepclassDB:def__init__(self):self.connection=MySQLdb.connect(mysql_host,mysql_user,mysql_pass,m

Python 和 MySQL 打印结果

我正在尝试自学Python,但遇到了瓶颈。我需要从MySQL获取一个字段,但是当我从数据库中检索数据时,结果很奇怪。这是我使用的下面的代码。cursor1=db.cursor()cursor1.execute("selectdjnamefromjerryins_djleaderboard.leaderboardwheredjname=%s",dj)result=cursor1.fetchall()printresult打印出来是这样的:(('cutecrazygirl88\r\n',)但是我希望它在数据库中显示为cutecrazygirl88。任何帮助,将不胜感激。先感谢您!